栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

redis各种数据结构的使用场景

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

redis各种数据结构的使用场景

redis各种数据结构的使用场景

这里介绍5种基本数据结构的使用场景:String、Hash、List、set和Zset。

1. String

String数据结构可以用于计数这一功能,如记录作品和文章的点赞数、歌曲的播放量等。

SET like:articles001 0 //初始化作品1的点赞数,一开始为0
INCR like:articles001 //之后每当有用户对作品点赞时,redis就调用INCR对作品的点赞数+1
2. Hash

Hash可以理解成Java中的嵌套Map结构,即Map>
因此Hash数据结构可以用来实现购物车这一功能。

MHSET shopcar:uid001 items001 1  items002 1 // 这里假设用户1的购物车中有2个商品item1和item2,数量都为1
MHSET shopcar:uid001 items003 1                // 这里又添加了item3 数量为1
HINCRBY shopcar:uid001 items001 1           //用户1又添加了一件items1
HDEL shopcar:uid001 items002                     //用户1将items2移出了购物车

相当于将redis当作Mysql数据库来使用。

3. List

List数据结构可以用来保存文章列表等。

4. set 4.1 Set实现抽奖功能

实现抽奖功能主要依赖于Set数据结构中的SRANDMEMBER和SPOP方法

SADD lucky_draw1 uid001 uid002 uid045 uid111 uid398 uid339 uid192 uid532 uid098 uid014 uid183 uid139 uid894 // 添加抽奖用户
SPOP lucky_draw1 3 //抽出3位幸运儿,并将它们移出集合。
4.2 Set实现社交媒体功能

实现社交媒体功能主要依赖于Set数据结构中的SDIFF(求交集),SINTER(求差集),SISMEMER,SMEMBERS这类集合运算方法来实现

SADD follow:uid0001 uid1234 uid3485 uid1212 uid0451 uid4821 uid3841 uid9999
SADD follow:uid1234 uid3241 uid3385 uid0212 uid1451 uid0421 uid8410 uid9999
SINTER follow:uid1234  follow:uid0001 //共同好友
SDIFF follow:uid1234  follow:uid0001 //可以为用户0001实现”你可能喜欢“这一功能
SISMEMER follow:uid0001 uid1234
SISMEMER follow:uid0001 uid9999
SISMEMER follow:uid1234 uid9999 //三者都为true,说明我关注的用户1234,他也在关注用户9999
5. Zset

Zset可以实现根据某一分数动态动态排序这一功能,例如热搜排行榜,豆瓣电影评分等。

ZADD Movie:Romantic 6.7 movie1 8.8 movie2 9.3 movie3 5.5 movie4 7.7 movie5  //假设有5部电影
ZREVRANGE Movie:Romantic 0 5 WITHSCORES //根据评分从高到低对电影继续排序

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/961784.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号