3-redis-数据类型

key

  • 字符串类型
  • redis内部并不限制binary字符,但redis协议做了限制,即key中不能出现空格、换行符等边界字符
  • redis 1.2以后的协议中部分命令已经采用新的协议格式,但严谨而言,不建议乱用
  • 格式约定
# 长度不要太长,占内存,查找慢;不推荐过短,可读性不好
object-type:id:field
user:1000:password
blog:73972:title

value

  • string
    • 二进制安全,可以包含任何数据,也即字节数组,上限1G
# string类型定义
struct sdshdr {
    long len;     # 数组长度
    long free;    # 剩余可用
    char buf[];   # c里的char是1个字节的
};
  • list
    • string的双向链表
  • set
    • string的无序集合,基于hash table实现
    • 调整大小时获取写锁阻塞其他读写线程,据说在zset中实现的跳表(skip list)可以避免这个
    • 操作:union,intersection,difference
  • zset
    • 与set的差异在于每个string会关联1个score
    • string->score映射在hash table中
    • score->string映射在skip list中
  • hash
    • string类型的field/value映射表
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容