当前位置:   article > 正文

Redis服务端客户端使用与主从集群_redis 集群客户端

redis 集群客户端

Redis主库服务端: 192.168.1.148

Redis从库1: 192.168.1.145

Redis从库2: 192.168.1.146

Redis客户端:192.168.1.147

一:Redis客户端使用

  1. Redis主库服务端先安装Redis
  2. wget http://download.redis.io/releases/redis-6.2.7.tar.gz
  3. tar zxf redis-6.2.7.tar.gz
  4. cd redis-6.2.7
  5. make PREFIX=/usr/local/redis install
  6. cp redis.conf /usr/local/redis/
  7. /usr/local/redis/bin/目录加入至环境变量配置文件/etc/profile末尾,然后Shell终端执行source /etc/profile让环境变量生效。
  8. export PATH=/usr/local/redis/bin:$PATH
  9. Nohup后台启动及停止Redis服务命令:
  10. nohup /usr/local/redis/bin/redis-server /usr/local/redis/redis.conf &
  11. /usr/local/redis/bin/redis-cli -p 6379 shutdown
  12. 修改Redis.config文件
  13. 修改bind 为0.0.0.0
  14. # 允许访问的地址,默认是127.0.0.1,会导致只能在本地访问。修改为0.0.0.0则可以在任意IP访问,生产环境不要设置为0.0.0.0
  15. bind 0.0.0.0
  16. # 守护进程,修改为yes后即可后台运行
  17. daemonize yes
  18. # 密码,设置后访问Redis必须输入密码
  19. requirepass 123456
  20. 我这里就不设置密码了 方便登录
  21. 修改dir文件目录,设置为固定目录
  22. 重启
  23. Redis重启一定要备份数据!!!!!否则数据会消除

###Redis客户端不用安装Redis只需要连接服务端使用###

直接使用

yum -y install redis

redis-cli -h 192.168.1.148 登录

Redis 命令格式如下:

CONFIG GET * 获取Redis服务器所有配置信息;

CONFIG SET loglevel "notice" 设置Redis服务器日志级别;

CONFIG SET requirepass "jfedu"

AUTH jfedu

redis-cli -h host -p port -a password 远程连接redis数据库;

CLIENT GETNAME 获取连接的名称;

CLIENT SETNAME 设置当前连接的名称;

CLUSTER SLOTS 获取集群节点的映射数组;

COMMAND 获取Redis命令详情数组;

COMMAND COUNT 获取Redis 命令总数;

COMMAND GETKEYS 获取给定命令的所有键;

TIME 返回当前服务器时间;

CONFIG GET parameter 获取指定配置参数的值;

CONFIG SET parameter value 修改redis 配置参数,无需重启;

CONFIG RESETSTAT 重置INFO 命令中的某些统计数据;

DBSIZE 返回当前数据库的key 的数量;

DEBUG OBJECT key 获取key 的调试信息;

DEBUG SEGFAULT 让Redis服务崩溃;

FLUSHALL 删除所有数据库的所有key;

FLUSHDB 删除当前数据库的所有key;

ROLE 返回主从实例所属的角色;

SAVE 异步保存数据到硬盘;

SHUTDOWN 异步保存数据到硬盘,并关闭服务器;

SLOWLOG 管理redis 的慢日志;

SET keys values 设置key为num,值为123;

DEL jfedu 删除key及值;

info 查看redis详细信息

二:Redis主从集群

Redis从库1: 192.168.1.145

按照主库安装Redis的步骤 在从库中安装好Redis

从库修改nginx.config文件配置主库ip和端口

做软链接

ln -s /usr/local/redis/bin/* /usr/bin/

之后启动Redis

Redis从库2:执行和上面完全一样的 安装修改软链接的步骤。

之后启动Redis

这样一来,从库只能读数据,写数据只有主库可以

三:Redis故障转移,安全高可用的模式----哨兵模式(sentinel)

       从Redis 2.8 版本开始,Redis 官方引入高可用方案:哨兵(Sentinel)模式。众所周知在 Redis 主从复制模式中,主从模式不具备自动恢复的功能,当主服务器(Master)宕机后,需要手动把从服务器(Slave)切换为主服务器。在这个过程中,需要人为干预,还会造成一段时间内服务器处于不可用状态,同时数据安全性也得不到保障。

Redis Sentinel 哨兵模式,它弥补了主从模式的不足。Sentinel 模式通过监控Master和Slave,获取主机上(Redis服务)的工作状态是否正常,当主机发生故障时, Sentinel 会自动进行 Failover(即故障转移),并将其监控的从机提升主服务器(Master),从而保证了系统的高可用性。

哨兵模式由两部分组成,哨兵节点和数据节点,其中哨兵节点是特殊的Redis 节点,不存储数据;而主节点和从节点被称为是数据节点。

哨兵(Sentinel) 是一个分布式系统,你可以在一个架构中运行多个哨兵(Sentinel)进程,这些进程使用流言协议(gossipprotocols)来接收关于Master是否下线的信息,并使用投票协议(agreement protocols)来决定是否执行自动故障迁移,以及选择哪个Slave作为新的Master。

每个哨兵(Sentinel) 会向其它哨兵(Sentinel)、Master、Slave定时发送消息,以确认对方是否”活”着,如果发现对方在指定时间(可配置)内未回应,则暂时认为对方已挂(所谓的”主观认为宕机” Subjective Down,简称sdown).

若“哨兵群”中的多数Sentinel,都报告某一Master没响应,系统才认为该Master"彻底死亡"(即:客观上的真正down机,Objective Down,简称odown),通过一定的vote算法,从剩下的Slave节点中,选一台提升为Master,然后自动修改相关配置。

虽然哨兵(Sentinel) 释出为一个单独的可执行文件 Redis-Sentinel ,但实际上它只是一个运行在特殊模式下的 Redis服务器,你可以在启动一个普通Redis 服务器时通过给定--Sentinel 选项来启动哨兵(Sentinel)。

哨兵模式一般需要三台服务器来支撑,也就是一台主服务器加其余的服务器加起来不能少于三台。为了方便这里我就只用一台192.168.1.148主服务器(企业生产环境要至少三台都得配sentinel,这里我为了方便演示就只给主服务器配。其它两台配置同理)当sentinel服务器,

同样如果你是用三台服务器来部署sentinel的话,一样要执行一遍安装redis并且配置加启动

但是我这里直接用的是主库,所以前面的步骤就省略了。

  1. 进入到redis目录
  2. cp sentinel.conf /usr/local/redis/
  3. 修改哨兵模式配置文件Sentinel.conf,设置Monitor监控的Master Redis IP和端口,信息,代码如下:
  4. 首先是修改bind 为0.0.0.0
  5. port 6379
  6. daemonize no
  7. logfile ‘/var/log/redis/sentinel.log’
  8. sentinel monitor mymaster 192.168.1.148(填Redis主库的IP,这里我主库和哨兵在一块所以就填了这个)6379 1
  9. 6379后面跟的数字1 表示有几个sentinel判断主redis服务器是否宕机 (我们目前只有一个sentinel 所以就写1)
  10. 启动命令
  11. nohup /usr/local/redis/bin/redis-sentinel /usr/local/redis/sentinel.conf &

 至此完毕,大家可以自己试试检验一下成果。手动关掉主库redis服务器 ,看看其它两个redis从库是不是有一台服务器变成主库了?登录从库redis redis-cli输入命令info replication查看信息

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/木道寻08/article/detail/876859
推荐阅读
相关标签
  

闽ICP备14008679号