redis安装、持久化、主从复制、哨兵、集群等配置

跟風遠走 提交于 2020-04-21 23:54:35

1.基于Center OS7安装redis

1.1下载安装包

    wget http://download.redis.io/releases/redis-5.0.8.tar.gz

1.2解压

tar –xvf redis-5.0.8.tar.gz

1.3编译和安装

    make install

安装完成以后进入redis目录

    cd redis-5.0.8/src

 

2.启动多个redis服务

 

2.1指定端口启动服务

                 服务端启动:redis-server --port 6380

        客户端启动:redis-cli -p 6380

 

2.2配置文件启动方式

                   (1)进入redis配置文件redis.conf

                           执行命令: cat redis.conf

                   (2)打开redis.conf文件后无法阅读,信息量太大了,简化过滤掉redis.conf文件里面的注释执行命令: cat redis.conf | grep -v "#" | grep -v "^$"

                   这回再次打开redis.conf文件后就清晰多了,但是这时当前这个文件不要修改,如果想修改需要执行如下命令:cat redis.conf | grep -v "#" | grep -v "^$" > redis-6379.conf 这是生成一个新的文件叫redis-6379.conf

(3)编译刚才生成的新文件

         执行命令: vim redis-6379.conf

删除无用的信息后保留如下:

创建mkdir date目录

修改文件后如下:

(4)用配置文件启动

         执行命令:redis-server redis-6379.conf

查看刚才执行的命令是否启动

         执行命令: ps -ef | grep redis-

如果不确定可以再次验证如下图:

 

杀死redis端口6379服务

将创建的redis-6379.conf文件管理起来,这里需要重新创建个目录

         mkdir conf

redis-6379.conf文件移动到刚才创建的conf目录中

         执行命令:mv redis-6379.conf conf     

(5)通过配置文件启动多个服务

         复制文件redis-6379.conf

         执行命令:cp redis-6379.conf redis-6380.conf

 

 

编辑redis-6380.conf文件,修改后如下

启动redis-6380.confredis-6379.conf

redis-server redis-6380.conf

redis-server redis-6379.conf

ps -ef | grep redis命令查看如下

连接客户端

         执行命令:redis-cli -p 6379

3.Redis持久化相关配置

3.1 RDB(快照)启动方式和相关配置

3.1.1修改生成后的dump.rdb名字

rdbcompression yes rdbchecksum yes一个是开启压缩另一个是开启检测

修改配置后需要重启redis服务

查看进程:ps -ef | grep redis-

杀掉进程3538

执行命令:kill -s 9 3538

重新启动redis服务

执行命令:redis-server conf/redis-6379.conf

进入创建好的data目录查看

dump-6379.rdb就是刚才设置好的文件名称

 

save指令不建议生产环境上使用,因为会阻塞当前redis服务器,直到RDB过程完成为止。

那么如何解决save的阻塞问题呢?

隆重推出bgsave命令,这个可以在后台运行,解决save阻塞的问题。

 

3.2 AOF持久化策略

3.2.1 AOF三种策略

         (1)always(每次)

                   每次写入操作均同步到AOF文件中,数据零误差,性能较低  不建议用

         (2)everysec(每秒)

每秒将缓存区中的指令同步到AOF文件中,数据准确性高,性能较高,宕机情况下丢失1秒内的数据  默认使用这种

         (3)no(系统控制)

                   由操作系统控制每次同步到AOF文件的周期,整体过程不可控

 

修改配置文件

 

appendonly 默认是no

appendfsync always | everysec | no

 

4. 主从复制

4.1主从复制配置

4.1.1 指令连接

(1) 修改redis-6379.conf文件

(2) 修改redis-6380.conf文件

用端口号6380连接6379

执行命令:slaveof 127.0.0.1 6379

通过6379客户端设置值

6380客户端获取在6379客户端设置的数据

4.1.2 配置文件连接(推荐)

用端口号6380连接6379

修改配置文件redis-6380.conf

 

5. 哨兵模式

5.1 配置哨兵

 

查看sentinel.conf配置文件

执行命令: cat sentinel.conf  | grep -v "#" | grep -v "^$"

sentinel.conf复制到conf目录下

执行命令: cat sentinel.conf  | grep -v "#" | grep -v "^$" > ./conf/sentinel-26379.conf

修改复制过来的sentinel-26379.conf配置文件

复制多个sentinel.conf文件,

执行命令:

sed 's/26379/26380/g' sentinel-26379.conf > sentinel-26380.conf

sed 's/26379/26381/g' sentinel-26379.conf > sentinel-26381.conf

26379文件复制了一份配置文件名叫26380

26379文件复制了一份配置文件名叫26381

 

redis-6380.conf文件复制一份叫redis-6381.conf

执行命令: sed 's/6380/6381/g' redis-6380.conf > redis-6381.conf

分别启动redis服务:

redis-server redis-6379.conf

redis-server redis-6380.conf

redis-server redis-6381.conf

分别启动sentinel

redis-sentinel sentinel-26379.conf

redis-sentinel sentinel-26380.conf

redis-sentinel sentinel-26381.conf

 

通过info命令查看哨兵启动成功2个哨兵

6. 集群配置

6.1 配置cluster

修改redis-6379.conf文件

 

cluster-enabled yes                开启集群

cluster-config-file nodes-6379.conf    配置每个节点的配置文件,同样以端口号为名称

cluster-node-timeout 100000           配置集群节点的超时时间,可改可不改

复制上面修改的redis-6379.conf文件

sed "s/6379/6380/g" redis-6379.conf > reids-6380.conf

sed "s/6379/6381/g" redis-6379.conf > reids-6381.conf

sed "s/6379/6382/g" redis-6379.conf > reids-6382.conf

sed "s/6379/6383/g" redis-6379.conf > reids-6383.conf

sed "s/6379/6384/g" redis-6379.conf > reids-6384.conf

sed "s/6379/6385/g" redis-6379.conf > reids-6385.conf

查询下redis状态

 

 

创建集群

执行命令:redis-cli --cluster create 127.0.0.1:6379 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384 --cluster-replicas 1

查看集群状态:

redis-cli --cluster check 127.0.0.1:6379

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!