原书: 李子骅. Redis入门指南(第2版)(异步图书)人民邮电出版社. Kindle 版本.
-
Redis核心数据结构:
-
String (字符串/二进制串)
-
最基本的数据类型
-
最大大小为512MB
-
所有的数据类型的基础都是二进制串
-
HashTable (散列表)
-
字段到二进制串的映射, 其中二进制串不可嵌套其他类型
-
散列表的最大大小为2^32-1
个元素
-
一般用于存放代码中的结构体对象, 可以保证对每个成员的原子操作
-
List (列表)
-
内部结构为双向链表, 头尾操作效率高, 随机访问效率低
-
最长上限也是2^32-1 (4,294,967,295)
-
用于实现队列或者栈
-
Set (集合/无序集合)
-
是键值对中值为空的散列表
-
上限2^32-1
-
用于进行集合操作, 以及判断元素是否存在
-
SortedSet (有序集合)
-
由跳跃表, 散列表结合存储的数据模式. 其基于每个对象的score
进行排序, 支持score
重复
-
对于有序集合的随机访问效率较列表更高, 可以通过调整元素score
大小控制元素位置
-
Redis线程模型: 单线程模型
-
Redis键值的一般命名格式: <对象类型>:<对象id>:<对象属性>
-
Redis的一般功能:
-
数据库
-
缓存
-
消息队列
-
Redis的进阶功能:
-
事务: MULTI, EXEC, WATCH
三个命令
-
过期时间: EXPIRE, TTL, PERSIST
-
排序: 使用有序集合, SORT, BY, GET, STORE
-
消息通知: SUBSCRIBE, UNSUBSCRIBE, PSUBSCRIBE
-
对于内存消耗的优化: 使用较短的键值, 进行Redis内部编码的设置
-
Redis脚本: Lua脚本
, 通过综合基本命令形成自定义的命令, 其运行是原子性的
-
内存数据持久化: RDB
备份数据本身; AOF
备份命令操作
-
Redis集群:
-
简单集群: 只是简单的读写分离, 通过RDB进行复制初始化, 通过AOF进行请求的异步同步. 出现宕机需要手动处理
-
哨兵集群: 将简单集群中的宕机的手动处理通过哨兵完成, 进行自动的节点角色转换, 以及数据的同步
-
Redis-cluster集群: 解决主从复制的横向拓展问题. 使用哈希槽进行数据的分配, 以和单体相近的性能适应大数据量环境
-
Redis安全:
-
Redis需要部署在可信环境, 不能直接从外网访问, 需通过软件进行隔离
-
对Redis设置密码进行授权访问
-
对于Redis的命令进行重命名以及禁用, 限制访问来源以及访问权限
-
Redis服务器与客户端的交流协议:
-
简单协议: 直接是命令行的输入进行通信
-
unified request protocol
: 以与AOF相同的格式进行通信, 是进行主从复制以及进行代码库通信的主要方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。