千家信息网

centos 7之Redis数据库详解及参数调优(内附搭建

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,博文目录:一、关系型数据库与非关系型数据库的区别。二、Redis数据库介绍。三、Redis的安装部署。四、Redis命令工具及常用命令五、Redis群集配置实例。一、关系型数据库与非关系型数据库的区别
千家信息网最后更新 2026年10月31日centos 7之Redis数据库详解及参数调优(内附搭建

博文目录:
一、关系型数据库与非关系型数据库的区别。
二、Redis数据库介绍。
三、Redis的安装部署。
四、Redis命令工具及常用命令
五、Redis群集配置实例。

一、关系型数据库与非关系型数据库的区别:

Redis数据库是一个非关系型数据库,和oracle、mysql、sql server等关系型数据库不是同一类型。NoSQL是非关系型数据库的总称,主流的NoSQL数据库有redis、MongBD等。NoSQL的存储方式、存储结构以及使用的场景都是完全不同的。NoSQL数据库凭借着其非关系型、分布式、开源和横向扩展等优势,被认为是下一代数据库产品。

NoSQL可以解决关系型数据库产生的三高问题:

  • 对数据库高并发读写需求。
  • 对海量数据高效存储与访问需求。
  • 对数据库高可扩展性与高可用性需求。

关系型数据库和非关系型数据库都有各自的特点与应用场景,两者精密结合将会给Web 2.0的数据库发展带来新的思路。让关系型数据库关注在关系上,非关系型数据库关注在存储上。

二、redis数据库介绍:

Redis是一个开源的、使用C语言编写、支持网络、可基于内存也可持久化的日志类型、key-value(键值对)数据库,是目前分布式架构中不可或缺的一环。

Redis服务器是单进程模型,也就是在一台服务器上可以同时启动多个Redis进程,而Redis的实际处理速度则完全依靠主进程的执行效率。若在服务器上只运行一个Redis进程,当多个client同时访问时,服务器的处理能力会有一定程度的下降;若在同一台服务器上开启多个Redis进程,Redis在提高并发处理能力的同时会给服务器的CPU造成很大的压力。也就是说,在实际生产环境中,需要根据实际的需求来决定开启多少个Redis进程。若对高并发要求更高些,可能会考虑在同一台服务器上开启多个进程;若CPU资源比较紧张,采用单进程即可。

Redis具有以下几个有点:

  • 具有极高的读写速度,数据读取的速度最高可达到110000次/s,数据的写入速度最高可以达到81000次/s。
  • 支持丰富的数据类型,不仅仅支持简单的key-value数据类型,还支持strings、lists、hashes、sets及ordered sets等数据类型操作。
  • 支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
  • 原子性,Redis所有操作都是原子性的。
  • 支持数据备份,即master-salve模式的数据备份。

Redis是基于内存运行的数据库,缓存是它比较常应用的场景之一,除此之外,Redis常见应用场景还包括获取最新N个数据的操作、排行榜应用、计数器应用、存储关系、实时分析系统、日志记录等。

三、Redis的安装部署:

需先去Redis官网下载相应的源码包或从这个Redis下载链接 (提取码:z0da)直接下载。

[root@redis ~]# tar zxf redis-5.0.5.tar.gz -C /usr/src/          #解包[root@redis ~]# cd /usr/src/redis-5.0.5/                  #切换至解压出来的目录[root@redis redis-5.0.5]# make && make install    #无需./configure配置,直接安装即可。[root@redis redis-5.0.5]# cd /usr/src/redis-5.0.5/utils/    #设置相关配置文件[root@redis utils]# ./install_server.sh       #执行该脚本文件,相关配置文件就生成了。#接下来是在指定各种配置文件的存放目录,一路按回车确认即可。[root@redis utils]# cd /etc/init.d/             #优化控制服务启停[root@redis init.d]# mv redis_6379 redis[root@redis init.d]# chkconfig --add redis         #添加为系统服务。[root@redis init.d]# systemctl restart redis[root@redis init.d]# systemctl restart redis[root@redis init.d]# systemctl restart redis[root@redis init.d]# netstat -anpt | grep redis   #redis默认监听6379和群集端口16379tcp        0      0 127.0.0.1:6379     0.0.0.0:*    LISTEN      7098/redis-server 1 #现在只是安装了redis,并没有配置群集,所以16379端口并没有监听。[root@redis init.d]# vim /etc/redis/6379.conf             #查看redis配置文件bind 127.0.0.1 192.168.1.1             #监听的主机地址appendonly yes  #改为"yes",以便在每次更新操作后进行日志记录,进行数据同步写入port 6379                                        #监听端口daemonize yes                               #启用守护进程pidfile /var/run/redis_6379.pid        #指定PID文件loglevel notice                                #日志级别logfile /var/log/redis_6379.log        #指定日志文件

上面为部分配置参数,主配置中还有很多更多的配置参数,具体可参考如下:

四、Redis命令工具及常用命令:

Redis软件提供了很多命令工具,在安装Redis时,所包含的软件工具同时会被安装到系统中,在系统中可以直接使用,这些命令工具的作用如下所示:

  • redis-server:用于启动Redis的工具。
  • redis-benchmark:用于检测Redis在本机的运行效率。
  • redis-check-aof:修复AOF持久化文件。
  • redis-check-rdb:修复RDB持久化文件。
  • redis-cli:Redis命令行工具。

下面是 redis-cli和redis-benchmark工具的用法:

1、redis-cli命令行工具:

redis-cli命令可以连接指定的数据库,可以用"-h"指定远程主机;"-p指定服务的端口号",若设置了密码,可以用"-a"指定密码,若没设置连接密码,则可以省略"-a"选项。如下:

[root@redis redis]# redis-cli -h 192.168.1.1 -p 6379      #若端口号默认监听6379,也可省略-p选项。192.168.1.1:6379>

在数据库操作环境中,使用help命令可获取命令类型的帮助。其中,有三种获取命令帮助的方式。

  1. help @:获取中的命令列表。
  2. help :获取某个命令的帮助。
  3. help :获取可能帮助的主题列表。

示例如下:

192.168.1.1:6379> help @list         #查看所有与list数据类型相关的命令  BLPOP key [key ...] timeout  summary: ck until one is available  since: 2.0.0  BRPOP key [key ...] timeout  summary: block until one is available  since: 2.0.0             ...........................192.168.1.1:6379> help set       #查看set命令的命令帮助。  SET key value [expiration EX seconds|PX milliseconds] [NX|XX]  summary: Set the string value of a key  since: 1.0.0  group: string

2、redis-benchmark压力测试工具:

redis-benchmark是官方自带的Redis性能测试工具,可以有效地测试Redis服务的性能。该工具的常用选项如下:

用法示例:

[root@redis redis]# redis-benchmark -h 192.168.1.1 -p 6379 -c 100 -n 100000#向指定IP地址及端口的Redis服务器发送100个并发连接与100000个请求测试性能。           .........................====== MSET (10 keys) ======  100000 requests completed in 1.74 seconds  100 parallel clients  3 bytes payload  keep alive: 123.94% <= 1 milliseconds98.02% <= 2 milliseconds99.64% <= 3 milliseconds99.76% <= 4 milliseconds99.82% <= 5 milliseconds99.89% <= 6 milliseconds99.90% <= 7 milliseconds99.94% <= 8 milliseconds99.97% <= 9 milliseconds100.00% <= 10 milliseconds100.00% <= 10 milliseconds57603.69 requests per second#测试结果,milliseconds为毫秒,时间越短,性能越好。[root@redis redis]# redis-benchmark -h 192.168.1.1 -p 6379 -q -d 100#测试向指定Redis服务器的指定端口6379存取大小为100B的数据包的性能。[root@redis redis]# redis-benchmark -t set,lpush -n 100000 -q#测试本机上Redis服务在进行set与lpush操作时的性能。SET: 67659.00 requests per secondLPUSH: 64516.13 requests per second

Redis数据库常用命令:

Redis数据库采用key-value(键值对)的数据存储形式,所使用的命令是set和get。

  • set:存放数据,命令格式为set key value。
  • get:获取数据,命令格式为get key。
[root@localhost ~]# redis-cli          #连接本地数据库127.0.0.1:6379 > set yuangong zhangsan             #插入数据OK127.0.0.1:6379> get yuangong         #查询键值"zhangsan"127.0.0.1:6379> keys y*               #查询以"y"开头的数据1) "yuangong"127.0.0.1:6379> keys y?         #查询以"y"开头后面包含一个任意一位的数据(empty list or set)                 #没有查到,代表没有符合条件的数据127.0.0.1:6379> keys y??         #查询以"y"开头后面包含一个任意两位的数据(empty list or set)127.0.0.1:6379> exists yuangong          #判断"yuangong"键是否存在(integer) 1                                              #表示yuangong键存在127.0.0.1:6379> exists yu                    #判断"yu"键是否存在(integer) 0127.0.0.1:6379> keys *        #查询当前库中所有键1) "counter:__rand_int__"2) "mylist"3) "key:__rand_int__"4) "yuangong"5) "myset:__rand_int__" 127.0.0.1:6379> del yuangong                         #删除yuangong键(integer) 1127.0.0.1:6379> set lv 23OK127.0.0.1:6379> type lv            #获取键"lv"对应的value值类型string

rename命令可以对已有的key进行重命名,还有一个重命名的命令为renamenx。两者区别是前者更改的目标key值不管存在与否,都将进行更改,直接覆盖目标key值的数据;后者renamenx命令是在更改时,会检查目标键值是否存在,若存在,将放弃更改。

127.0.0.1:6379> get lvjian"23"127.0.0.1:6379> set liuyi 30            #插入一条数据OK127.0.0.1:6379> renamenx lvjian liuyi                #将"lvjian"更改为"liuyi"(integer) 0                                                         #"liuyi"存在,放弃更改127.0.0.1:6379> rename lvjian liuyi             #使用rename命令进行更改OK127.0.0.1:6379> get liuyi               #直接覆盖目标数据"23"127.0.0.1:6379> dbsize                  #查看当前数据库中key的数目(integer) 5

多数据库常用的命令

Redis支持多数据库,Redis在没有任何改动的情况下默认包含16个数据库,数据库名使用数字0--15来依次命名。每个库中的数据是独立的,也就是说在10库中查不到0库中的数据。

127.0.0.1:6379> select 10        #切换至编号10的库OK127.0.0.1:6379[10]> select 15          #切换至编号15的库OK127.0.0.1:6379[15]> select 0              #切换至编号0的库OK127.0.0.1:6379> move liuyi 10    #将该库中的数据移动到10库中(integer) 1127.0.0.1:6379> select 10            #切换至编号10的库OK127.0.0.1:6379[10]> get liuyi                 #查看移动过来的库"23"#现在0库中已经查不到"liuyi"的数据了

清除数据库内数据:

Redis数据库的整库数据删除主要分为两个部分:清空当前数据库中的数据,使用flushdb命令实现;清空所有库中的数据,使用flushall命令。数据库清空操作比较危险,生产环境下慎用!!!

五、Redis群集配置实例:

基于centos 7的Redis群集原理及配置

数据 数据库 命令 服务 工具 配置 文件 服务器 进程 类型 支持 测试 性能 存储 常用 日志 端口 切换 帮助 应用 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 什么是科技互联网 广州紫鲸互联网科技有限公司 西安纸贵互联网科技有限公司 港股互联网科技股 互联网的科技创新 腾讯科技 互联网女皇 玖二柒互联网科技公司待遇 崇明区互联网教育科技售后服务 开一家科技互联网公司需要多少钱 广西互联网科技孵化中心 互联网在线教育科技创业 徐州市互联网科技有限公司 互联网第三次科技革命特征 云南省自由互联网科技有限公司 领航科技大厦互联网公司 全球科技与互联网公司市值变化 北京天晋互联网科技有限公司 第三届互联网大会安防黑科技 杭州科技互联网公司有哪些 宁波允成互联网科技有限公司 互联网佳科技有限公司 科技互联网项目 互联网金融 科技 互联网络科技有限公司 互联网科技咨询 受益于互联网科技的高速发展 智腾互联网科技有限公司 健康食品互联网创新科技园项目 南京一网一红互联网科技有限公司 武汉亿视互联网科技有限公司
0