Redis5种数据结构的内部编码及应用场景和基本命令
1.字符串(String)
内部编码有3种:
int:8个字节的长整型
embstr:<=39个字节的字符串
raw:>39个字节的字符串
应用场景:
缓存功能:存取一个对象,注:键的取名以“业务名:对象名:id:[属性]”,如mysql:employee:1:name;
计数功能:如视频点赞、收藏数的自增
共享Session:如在分布式开发中用于储存用户信息供多个服务器访问
限速:如禁止用户多次发送验证信息
2.哈希(hash)
内部编码有2种:
ziplist:当哈希类型元素个数小于hash-max-ziplist-entries配置(默认512个)且同时所有的值都小于hash-max-ziplist-value配置(默认64字节)时,采用ziplist作为哈希的内部实现,ziplist在节省内存方面比hashtable优秀。
hashtable:不满足ziplist则采用hashtable,此时因数据大用hashtable读写效率提高。
应用场景:
使用哈希类型存储对象数据
3.列表(list)
内部编码有2种:
ziplist:当哈希类型元素个数小于hash-max-ziplist-entries配置(默认512个)且同时所有的值都小于hash-max-ziplist-value配置(默认64字节)时,采用ziplist作为哈希的内部实现,ziplist在节省内存方面比hashtable优秀。
linkedlist:不满足ziplist就采用linkedlist。
应用场景:
lpush+lpop=Stack(栈)
lpush+rpop=Queue(队列)
lpush+ltrim=Capped Collection(有限集合)
lpush+brpop=Message Queue(消息队列)
4.集合(Set):
内部编码有2种:
inset:当集合中的元素都是整数且元素个数小于set-max-inset-entries配置(默认512个),更节省内存。
hashtable:不满足inset则采用hashtable.
应用场景:
sadd=Tagging(标签):使用sadd,sinter,sdiff,sunion可以求共同爱好,产品推荐,社交需求
spop/arandmember=Random item(生成随机数:用于抽奖)
5.有序集合(zset):
注:所谓有序集合是由key值为score,根据score的权重(即key值的大小)作为排序的依据。
内部编码有2种:
ziplist:当哈希类型元素个数小于zset-max-ziplist-entries配置(默认128个)且同时所有的值都小于zset-max-ziplist-value配置(默认64字节)时,采用ziplist作为哈希的内部实现,ziplist在节省内存方面比hashtable优秀。
skiplist:不满足ziplist则采用skiplist。
应用场景:
排行榜系统
- redis基本命令及应用场景
- Redis中5种数据结构的使用场景介绍
- Redis 5种数据结构常用命令
- Redis的几种数据结构,和各自应用场景的列举示例
- Redis中5种数据结构的使用场景介绍
- Redis中5种数据结构的使用场景介绍
- redis5种数据结构讲解及使用场景
- Redis数据结构和内部编码--哈希(hash)
- Redis数据结构和内部编码--列表(list)
- Redis的五种数据结构的内部编码
- 高可用Redis(一):通用命令,数据结构和内部编码,单线程架构
- Redis数据结构和内部编码--有序集合(SortedSet)
- Redis 5种数据类型及基本的命令操作(新手入门)
- Redis数据结构和内部编码--集合(Set)
- Redis几种数据结构的应用场景
- Redis中5种数据结构的使用场景介绍
- Redis中7种集合类型应用场景&redis常用命令
- Redis几种数据结构的应用场景
- redis的5种数据结构的使用场景
- Redis 基本数据结构及命令