REDIS
2020-02-17 15:54:37 0 举报
AI智能生成
redis知识点图普,仅整理基本知识结构,作为redis知识网络查询和借鉴
作者其他创作
大纲/内容
数据库
切换数据库
select
DB数组
dbnum
RedisDB *db
dict
键空间
键空间操作
添加、删除、更新、取值
flushdb、dbsize、EXISTS、RENAME、keys
EXPIRE、PEXPIRE、SETEX
设置生存时间
EXPIREAT、PEXPIREAT
设置过期时间
PERSIST
移除过期时间
TTL、PTTL
返回剩余生存时间
过期键的删除策略
定时删除
通过定时器定时删除
惰性删除
在取出键时进行过期检查和删除
定期删除
确定删除操作的时长和频率
持久化
RDB
SAVE、BGSAVE
自动间隔性保持
配置:save
根据RDB数据结构序列化
AOF
BGREWRITEAOF
记录写操作命令
命令追加
AOF重写
客户端
REDIS服务器使用单线程单进程处理命令请求
redisClient
套接字描述符
名字
标志值flag
正在使用的数据库指针
当前要执行的命令、命令参数、参数个数、以及指向命令实现函数的指针
输入输出缓冲区
复制状态信息
事务状态及watch命令数据结构
发布订阅时用的数据结构
身份验证标志
创建时间、最后一次通信时间
服务器
复制
SLAVEOF
同步
将从服务器数据库状态更新至主服务器当前的数据库状态
SYNC命令
从服务器向主服务器发送SYNC命令
BGSAVE
主服务器通过不BGSAVE存储当前的记录写到RDB
发送RDB
主服务器将RDB发送给从服务器
从服务器加载RBD
缓存写命令
主服务器记录RDB同时缓存写命令
发送写命令
主服务器持续发送写命令
从服务器执行写命令
命令传播
主服务器将引起主从不一致的命令发送给从服务器,从服务器执行此命令,使数据再次一致
复制偏移量
心跳检测
复制偏移量
链接状态
检测命令丢失
Sentinel
高可用性的解决方案
启动命令
redis-sentinel sentinel.conf
SLAVEOF IP
SLAVEOF no one从机转主机
sentinel是一个特殊模式的REDIS
维护监控主服务器列表
创建连向主服务器的连接
不使用REDIS的基础操作命令
服务器监控
监视任意多个主服务器及主服务器下的所有从服务器
故障转移
在主服务器下线时提升从服务器为主服务器
集群
分布式数据库方案
通过分片进行数据共享
命令
LUSTER MEET (ip) (port)
连接各个节点
槽指派(slot)
共16384个槽
CLUSTER ADDSLOTS
将多个槽指派节点
MOVED错误
数据读写时根据槽值判断是否属于本集群,不属于则返回moved错误并纠正槽服务器
重新分片
重新制定槽所属节点
增加集群节点
设置从节点
REPLICATE (node_id)
数据结构
SDS(Simple dynamics tring)
简单动态字符串
简单动态字符串
struct
len
free
buf
空间预分配
惰性空间释放
二进制安全
链表
列表
发布订阅
慢查询
监视器
字典
数据库
哈希键
哈希表作为底层实现
键的哈希值和索引值做映射
rehash(重新散列)
跳跃表
有序集合
整数集合
集合键
动态升级
压缩列表
列表键
哈希键
对象
基于REDIS数据结构创建的对象系统
REDIS根据对象类型执行对象命令
实现基于引用计数的内存回收和对象共享
字符串对象
列表对象
哈希对象
集合对象
有序集合对象
对象类型与编码
类型
REDIS_STING
REDIS_LIST
REDIS_HASH
REDIS_SET
REDIS_ZSET
编码
REDIS_ENCODING_INT
long类型的整数
REDIS_ENCODING_EMBSTR
embstr编码的简单字符串
REDIS_ENCODING_RAW
简单动态字符串
REDIS_ENCODING_HT
字典
REDIS_ENCODING_LINKEDLIST
双链列表
REDIS_ENCODING_ZIPLIST
压缩列表
REDIS_ENCODING_INTSET
整数集合
REDIS_ENCODING_SKIPLIST
跳跃表和字典
事件
文件事件
服务器对套接字操作的抽象
处理器
连接应答处理器
命令请求处理器
命令回复处理器
时间事件
对给定时间点操作的抽象
定时事件
周期性事件
其他功能
发布与订阅
命令
PUBLISH、SUBSCRIBE、UNSUBSCRIBE、PSUBSCRIBE、PUNSUBSCRIBE
例子
SUBSCRIBE ‘news.it’
PUBLISH ‘news.it’ ‘hello’
PUBSUB CHANNELS、PUBSUB NUMSUB、PUBSUB NUMPAT
事务
通过MULTI、EXEC、WATCH等命令实现事务功能
通过客户端的事务标识开关实现
步骤
事务开始
MULTI
命令入队
事务执行
EXEC
WATCH
乐观锁
在命令执行前,监视任意数量的数据库键,如果键值被修改,则拒绝执行事务
ACID
原子性
多个操作作为整体执行
不支持回滚
与redis的设计理念有关
一致性
隔离性
多个事务并发执行
持久性
事务执行后数据已保存在存储介质里
需要持久化模式
LUA脚本
命令
SCRIPT FLUSH、SCRIPT EXISTS、SCRIPT LOAD、SCRIPT KILL
SORT
排序
SORT <key>
ASC、DESC
慢查询日志
slowlog-log-slower-than
超时时间
slowlog-max-len
慢查询日志条数
命令
SLOWLOG GET
查询慢查询日志
MONITOR
监视器命令,试试接收并打印服务器处理的请求命令
0 条评论
下一页