1.概述
很多时候无法记全这五种数据结构,这里教大家一种办法,这样来记忆即可:
1.Redis是一个KV形式的内存数据库,所以其数据组织方式其实就是以KV为基准然后进行扩展,由KV的一对一到List的一对多再到Map的一类KV的集合。
2.实际业务场景中,Redis中存的数据很可能具有唯一性(比如用户信息)或者顺序性(比如需要根据用户VIP等级来顺序拿用户),所以”辨重“、”排序“,是两个很关键的能力。
首先redis基于基础一对一的kv进行扩展,提供了三种基础结构:
redis本质上是个KV形式的内存数据库,所以KV形式是它的基础形式,也就是String类型的数据结构。
除了一个Key对应一个Value外,业务上有时候还需要一个key对应多个value,也就是链表类型,也就是Redis中的List类型的数据结构。
业务上有时候需要将一类KV键值对聚集在一起做成一个集合,就像JAVA中的Map一样,一类KV键值对的集合,也就是Hash类型的数据结构。
List中的数据可能重复,所以给出了不能重复的一个key对应多个value的结构——Set。
为了方便按照权重字段进行排序,专门给出了一种用来排序的结构——zSet。
2.String
如果value是数值形式的,String支持对数值进行操作:
自增 | |
自减 | |
增加指定值 | |
减少指定值 | |
批量操作 | |
追加 | |
截取 |
3.List
压入/弹出
可以头压,尾压。头弹,尾弹。
ltrim 名称 个数(正数从左往右删、负数从右往左删,0删除所有) value
4.Set
添加元素 | sadd |
获取所有元素 | smembers |
判断是否是集合的成员 | sismember |
随机取出一个元素 | srandmember |
5.Hash
插入单个kv | hset <XXX> <key> <value> |
取出单个kv | hget <XXX> <key> |
插入多个kv | hmset <XXX> <key1> <value>:<key2> <value> |
查看某个key是否存在 | hexists <XXX> <key> |
查看所有key | hkeys <XXX> |
查看所有value | hvals<XXX> |
6.zSet
Redis有序集合zset与普通集合set非常相似,是一个没有重复元素的字符串集合。不同之处是有序集合的每个成员都关联了一个评分 (score),这个评分(score)被用来按照从最低分到最高分的方式排序集合中的成员。集合的成员是唯一的,但是评分可以是重复了。因为元素是有序的,所以你也可以很快的根据评分(score) 或者次序 (position)来获取一个范围的元素。访问有序集合的中间元素也是非常快的,因此你能够使用有序集合作为一个没有重复成员的智能列表。
原文地址:https://blog.csdn.net/Joker_ZJN/article/details/132925567
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_43640.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!