主从
缓存穿透
数据库和缓存都没有的数据
缓存空对象
布隆过滤器
通过多个hash函数
缓存雪崩
错开过期时间 搭建集群
requirepass lizheng2
masterauth lizheng
dir /usr/local/redis7000
pidfile /var/run/redis_7000.pid
logfile “/usr/local/redis7000/redis7000.log”
cluster-enabled yes
cluster-config-file nodes-7000.conf
cluster-require-full-coverage yes
sed ‘s/7000/7008/g’ redis7000/redis.conf > redis7008/redis.conf 批量修改
启动6台
cli redis.conf
redis-cli -h 127.0.0.1 -p 7001 -a lizheng2 cluster nodes
帮助文档
redis-cli -h 127.0.0.1 -p 7001 -a lizheng2 --cluster help
创建集群
redis-cli --cluster create 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 --cluster-replicas 1 -a lizheng
集群连接
redis-cli -h 127.0.0.1 -p 7001 -a lizheng2 -c
查看槽位
cluster keyslot [key]
/usr/local/bin/redis-server /usr/local/redis7000/redis.conf
/usr/local/bin/redis-server /usr/local/redis7001/redis.conf
/usr/local/bin/redis-server /usr/local/redis7002/redis.conf
/usr/local/bin/redis-server /usr/local/redis7003/redis.conf
/usr/local/bin/redis-server /usr/local/redis7004/redis.conf
/usr/local/bin/redis-server /usr/local/redis7005/redis.conf
添加集群节点
redis-cli --cluster add-node 127.0.0.1:7006 127.0.0.1:7000 -a lizheng
添加集群从节点
redis-cli --cluster add-node 127.0.0.1:7006 127.0.0.1:7000 --cluster-slave --cluster-master-id [nodeid] -a lizheng
删除节点
redis-cli --cluster del-node 127.0.0.1:7007 [nodeid] -a lizheng
分配槽
redis-cli --cluster reshard 127.0.0.1:7000 -a lizheng
需要分配的槽位数
需要添加槽位的节点id
从对应节点取
all平均分配 done结束选择分配
缩容集群
redis-cli --cluster reshard --cluster-from 【nodeid】 --cluster-to 【nodeid】 --cluster-slots 【数量】
例子:
redis-cli --cluster reshard 127.0.0.1:7000 --cluster-from c1735dd746e5a525ce779881d9d62df38e0c6bfa --cluster-to cfcc1a34c9f28b944b7e4c6f35b147be0f643dd0 --cluster-slots 500 -a lizheng
转移后先删除从后删除主节点
redis 缓存击穿
缓存刚过期或者没有初始化大量访问
加锁解决