Redis 知识点罗列&速查
2021-07-27 11:49:55 44 举报
基本知识点的罗列和速查
作者其他创作
大纲/内容
Redis管道
SpringBoot中,使用 redisTemplate.executePipelined(RedisCallback<Object> rc) 实现
Redis事务
开启事务
通过 Multi 开启事务
每一条命令被提交到事务中
命令入队列
Redis将请求放入事务队列中等待执行
服务器返回 QURUD 则表示命令已入队
执行事务
通过 Exec 命令执行事务
Redis 事务中错误执行的命令不会影响其他命令(可以通过 Watch 命令 监控/批量监控)
事务全部执行完,返回给客户端结果
SpringBoot实现
Redis 发布/订阅 Pub/Sub
subscribe 订阅1~n 个 频道(Channel)
psubscribe 订阅 1~n 个 符合给定模式的 频道
unsubscribe 退订指定频道
publish 发布信心到指定频道
pubsub 查看 发布/订阅系统 的状态
高可用
主从模式(Master-Slave)
复制原理
从数据库需加入配置,指明主数据库 / 主数据库无需任何配置
哨兵模式(Sentinel)
核心:检测到 Master 宕机时,自动将 Slave 切换到 Master,完成主备热切
集群模式(Cluster)
遵循规则:
各节点间通过 PING-PONG 机制互联(内部使用二进制协议优化传输速度)
某节点若「被超过半数的节点认为是 Fail 状态」,则该节点被标记为 Fail
客户端与Redis节点直连,只要是可用节点均可操作集群
Redis-Cluster 将所有物理节点映射在 0~16383 的 slot(槽)上,Cluster负责维护每个节点上数据槽的分配。(Redis会根据节点数量将槽大致均等地分布在不同节点)
核心:集群中一部分节点 失效/无法通信 时,仍然可以基于副本数据对外提供服务
持久化
RDB - Redis DataBase
特点:文件格式紧凑,数据的传输个恢复快速
原理:保存 .rdb 快照文件时,父进程 fork 出一个子进程,由子进程完成具体的持久化工作
AOF - Append Only File
特点:可以使用不同的 fsync 策略,且支持重写功能缩小日志文件大小
无 fsync
每秒 fsync
写时 fsync
原理:每次写操作会被保存到日志文件末尾
角色
内存数据库
缓存
消息中间件
数据结构
String - 字符串、整数、浮点数
set 设置、get 获取、getset 给key设置value并返回旧value、append 追加 、mset 设置一个或多个子字符、mget 获取多个值
setnx 不存在时设置key的值,否则不响应、msetnx 当且仅当所有key均不存在时设置key的值,否则不响应
setex 将value关联到key,同时设置过期时间(单位 s)
psetex 将value关联到key,同时设置过期时间(单位 ms)
incr 自增、decr 自减、incrby 自定义增、decrby 自定义减
getrange key start end 返回指定区间的值
setrange key start value 在key的start位置插入value
Hash - k-v 映射表
hset、hget、hkeys、hvals...
List - 可重复有序集和
rpush、lpop、lpush、rpop、lindex :获取索引位置的value
blpop :移除列头元素,若没有则阻塞直至超时或等到可移除的元素
lrange :获取列表指定范围内的元素、lset :给索引位置key赋value
linsert key before/after pivot value:在pivot元素 之前/之后 插入value这个元素
lrem key count value : 移除count个等于value的元素 (lrem key 0 value : "删除list0中所有value值")
ltrim :修剪不在指定区间内的元素
Set - 不可重复无序集合
sadd 增、smembers 查、srem 删、scard 数量
smove set1 set2 key :将set1中的key移至set2
spop :随机移除并返回set中的一个元素
ZSet - 带分数的不可重复有序集合
zadd key score1 value1 score2 value2 ...
zrange key start stop :返回 [start, stop] 间的所有成员
zcard 数量、zrem 删除、zscore key member :指定member分值
zcount key min max :返回min~max间的存在数量
zrank :升序下的排名、zrevrank :降序下的排名
BitMap - 位图(1bit状态位)
setbit/getbit key offset(0/1)
bitcount key [start end] :统计offset=1的数目
HyperLogLog - 基数统计(计算一个Set中元素数目の概率)
pfadd :添加指定元素进入
pfcount:返回指定键的基数估计值
pfmerge:多合一
Geo - 地理位置信息
Stream - 5.0+ 可持久化消息队列
收藏
0 条评论
下一页
为你推荐
查看更多