目录
一.定义
redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
二.redis 安装启动
|tar zxf redis-6.2.1.tar.gz
|[root@server1 redis-6.2.1]# make && make install
修改启动脚本,注释掉systemd 循环
生成redis脚本
./install_server.sh
编辑配置文件,ip改0.0.0.0
vim /etc/redis/6379.conf
启动服务,交互式测试
二.redis常用命
三.redis主从复制
主机上节已经配置监听所有网段
从机安装redis与yi相同
配置文件修改
重启服务,测试,可以简单的配置一主多从
四.sentinel分布式监控
对集群的故障节点进行转移
监控(Monitoring): Sentinel 会不断地检查你的主服务器和从服务器是否运作正常。
提醒(Notification): 当被监控的某个 Redis 服务器出现问题时, Sentinel 可以通过 API 向管理员或者其他应用程序发送通知。
自动故障迁移(Automatic failover): 当一个主服务器不能正常工作时, Sentinel 会开始一次自动故障迁移操作, 它会将失效主服务器的其中一个从服务器升级为新的主服务器, 并让失效主服务器的其他从服务器改为复制新的主服务器。
修改 sentinel.conf 文件,所有节点共享
cp sentinel.conf /etc/redis/
vim /etc/redis/sentinel.conf
指定master,确定投票权力,以及时间10s
开始三台机监控
redis-sentinel /etc/redis/sentinel.conf
down掉master shutdown
master 变成2
重启服务,1成为slave
Redis哨兵模式实现了高可用,读写分离,但是其主节点仍然只有一个,即写入操作都是在主节点中,这也成为了性能的瓶颈。
五.集群-Cluster
redis集群:
自动分割数据到不同的节点上。
整个集群的部分节点失败或者不可达的情况下能够继续处理命令。
它采用去无心节点方式实现,集群将会通过分片方式保存数据库中的键值对。
Redis Cluster的整个数据库将会被分为16384个哈希槽,数据库中的每个键都属于这16384个槽中的其中一个,集群中的每个节点可以处0个或者最多16384个槽。
Redis的每个节点都可以分为主节点与对应从节点。主节点负责处理槽,从节点负责复制某个主节点,并在主节点下线时,代替下线的主节点。
脚本创建集群
生成集群
./create-cluster start
ps ax
集群配对
测试
# Replication
role:master
connected_slaves:1
slave0:ip=127.0.0.1,port=30005,state=online,offset=1248,lag=0
master_failover_state:no-failover
master_replid:2f73b010061935edf3171f5764ab081a285d950c
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:1248
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:1248
一组down 掉集群就废了,需要重启
增加集群
vim create-cluster