Redis
2021-09-04 00:27:59 29 举报
AI智能生成
为你推荐
查看更多
Redis学习路径完整版
作者其他创作
大纲/内容
key相关命令
key
daemonize yes
后台启动
bind 注释或改为对应ip
远程访问
no 外部网络可以直接访问
yes 需配置bind ip或者设置访问密码
protected-mode
相关命令
redis.conf
6379
port
基础
扩容
String
数据结构
List
底层实现
Set
Hash
Zset
概述
基本数据类型
发布订阅
对于只有两种情况的业务,可以极大的节省空间
实际应用:布隆过滤器
Bitmaps
统计不重复元素的个数
HyperLogLog
坐标相关操作
可实现附近的人等
geospatial
高级
组队阶段出现错误,直接退出事务
执行阶段出现错误,只有错误的指令不会执行,其他的正常执行
watch命令的原理是乐观锁
事务
指定的时间间隔将内存中数据集快照写入文件
Redis DataBase
m秒内有n个key改变
save m n
触发策略
save保存时会阻塞其他操作
bgsave是异步进行的
save与bgsave
默认开启
RDB
以日志形式记录每个写操作
Append Of File
appendonly yes
开启AOF
每次写操作
always
每秒
everysec
交给操作系统控制
no
appendfsync
同步频率
默认关闭
AOF
持久化
查看主从配置信息
info replication
设置为ip:port的从服务器
slaveof ip port
将从服务器变为主服务器
slaveof no one
命令
从服务器重启后需要再次设置 slaveof
主服务器挂掉后,并不会主动选出新的主服务器
从服务器是只读的,每次设置slaveof都会全量复制主服务器
注意点
当主机挂掉,从机自动选举出新的主机
原主机重启后会变为从机
sentinel.conf
哨兵模式
主从复制
集群最少要6个节点,3主3从
集群有16384 slot,主服务器平分16384,根据key计算出由那个主服务器处理
主从之间数据一致,每个主服务器都是完整数据的一部分
主服务器挂掉后,从服务器自动变为主服务器
此时主服务器启动后变为从服务器
故障恢复
yes 集群挂掉
no 该slot区间不可用
cluster-require-full-coverage
主从都挂掉
集群
大量请求在缓存和数据库中都没有的数据
对空值进行缓存
白名单
布隆过滤器
解决
缓存穿透
大量请求缓存中没有,数据库中有(一般为缓存过期)的数据
饿汉式加载热门缓存
调整过期时间
缓存击穿
大量缓存数据过期导致数据库宕机
失效时间分散开
缓存雪崩
应用问题
当key不存在时才能设置值
setnx key value
设置过期时间
当进程刚获得锁后出现异常,导致锁无法释放
加锁
delete key
释放锁时判断value值,不为自己设置的值不释放
当过期时间设置较短,A进程未结束自动释放锁,B进程获得锁后,A会将B的锁删除
判断和删除设置为原子操作
在判断value值相等之后,删除key之前,刚好过期自动释放锁,其他进程获取锁后,导致锁被删除
释放锁
分布式锁
访问控制列表
ACL
客户端交互为多线程、执行命令认为单线程
IO多线程
redis6新功能
Redis
0 条评论
回复 删除
下一页