内容简介:这是最基本的类型了,就是普通的set和get,做简单的kv缓存。这个是类似map的一种结构,这个一般就是可以将结构化的数据,比如一个对象(前提是这个对象没嵌套其他的对象)给缓存在redis里,然后每次读写缓存的时候,可以就操作hash里的某个字段。hash类的数据结构,主要是用来存放一些对象,把一些简单的对象给缓存起来,后续操作的时候,你可以直接仅仅修改这个对象中的某个字段的值
这是最基本的类型了,就是普通的set和get,做简单的kv缓存。
2.hash
这个是类似map的一种结构,这个一般就是可以将结构化的数据,比如一个对象(前提是这个对象没嵌套其他的对象)给缓存在 redis 里,然后每次读写缓存的时候,可以就操作hash里的某个字段。
key=150 value={ “id”: 150, “name”: “zhangsan”, “age”: 20 } 复制代码
hash类的数据结构,主要是用来存放一些对象,把一些简单的对象给缓存起来,后续操作的时候,你可以直接仅仅修改这个对象中的某个字段的值
value={ “id”: 150, “name”: “zhangsan”, “age”: 21 } 复制代码
3.list
有序列表,这个是可以做很多不同操作的
比如:微博,某个大v的粉丝,就可以以list的格式放在redis里去缓存
key=某大v value=[zhangsan, lisi, wangwu] 复制代码
比如:可以通过list存储一些列表型的数据结构,类似粉丝列表了、文章的评论列表了之类的东西
比如:可以通过lrange命令,就是从某个元素开始读取多少个元素,可以基于list实现分页查询,这个很棒的一个功能,基于redis实现简单的高性能分页,可以做类似微博那种下拉不断分页的东西,性能高,就一页一页走
比如:可以搞个简单的消息队列,从list头怼进去,从list尾巴那里弄出来
4.set
无序集合,自动去重
直接基于set将系统里需要去重的数据扔进去,自动就给去重了,如果你需要对一些数据进行快速的全局去重,你当然也可以基于jvm内存里的HashSet进行去重,但是如果你的某个系统部署在多台机器上呢?
得基于redis进行全局的set去重
可以基于set玩儿交集、并集、差集的操作,比如交集吧,可以把两个人的粉丝列表整一个交集,看看俩人的共同好友是谁?对吧
把两个大v的粉丝都放在两个set中,对两个set做交集
5.sorted set
排序的set,去重但是可以排序,写进去的时候给一个分数,自动根据分数排序,这个可以玩儿很多的花样,最大的特点是有个分数可以自定义 排序 规则
比如说你要是想根据时间对数据排序,那么可以写入进去的时候用某个时间作为分数,人家自动给你按照时间排序了
排行榜:将每个用户以及其对应的什么分数写入进去,zadd board score username,接着zrevrange board 0 99,就可以获取排名前100的用户;zrank board username,可以看到用户在排行榜里的排名
zadd board 85 zhangsan zadd board 72 wangwu zadd board 96 lisi zadd board 62 zhaoliu 96 lisi 85 zhangsan 72 wangwu 62 zhaoliu zrevrange board 0 3 获取排名前3的用户 96 lisi 85 zhangsan 72 wangwu zrank board zhaoliu 4 复制代码
以上所述就是小编给大家介绍的《关于redis的几件小事(三)redis的数据类型与使用场景》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。