redis系列(一) | 常用数据类型、内部编码、使用场景

在这里插入图片描述
在这里插入图片描述

1.string 操作

1)内部编码
     int 8个字节的长整型
     embstr 小于等于39个字节的字符串
     raw 大于39个字节的字符串 
 2)使用场景
   缓存功能
   计数
   共享session
   限速

2.hash操作

	1)内部编码
      ziplist(压缩列表)
     	当哈希类型元素个数小于hash-max-ziplist-entries配置时(默认512个),同时所有值都是小于hash-max-ziplist-value配置时候(默认64字节),redis会使用ziplist作为哈希的内部实现
      hashtable(哈希表) 
     	当哈希类型无法满足ziplist的条件时,redis会使用hashtable作为内部实现,因为ziplist的读写效率会下降。而hashtable的读写时间复杂度为O(1)

	 2)使用场景
   		存储对象

3.list操作

1)内部编码
     ziplist(压缩列表)
         当列表元素个数小于list-max-ziplist-entries配置时(默认512个),同时所有值都是小于list-max-ziplist-value配置时候(默认64字节),redis会使用ziplist作为哈希的内部实现
     linkedlist(链表)
         当列表类型无法满足ziplist的条件时,redis会选用LinkedList.
     quicklist 
         3.2版本提供的一个内部实现,简单来说它是以一个ziplist为节点的linkedlist,集合了ziplist和linkedlist的优势
 2)使用场景
      消息队列
      文章列表

4.set操作

1)内部编码
  	intset(整数集合)  :当集合中的元素都是整数且元素个数小于set-max-intset-entries(默认512个),redis会选用Intset来作为集合的内部实现,从而减少内存的使用
    hashtable(哈希表):当集合类型无法满足Intset的条件时,会选用hashtable作为集合的内部实现

 2)使用场景
 	兴趣爱好
 	共同兴趣等

5.zset操作

1)内部编码
   ziplist(压缩列表)
      当有序集合的元素个数小于zset-max-ziplist-entries配置(默认128个),同时每个元素的值都小于zset-max-ziplist-value配置(默认64字节)时,使用ziplist来作为有序集合的内部实现
   skiplist(跳跃表)
      当ziplist条件不满足的时候,有序集合会使用skiplist作为内部实现

 2)使用场景
   添加用户赞数
   取消用户赞数
   获取用户赞数最多的10个用户
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值