数据库
首页 > 数据库> > RS02-Redis五种数据结构对应的使用场景

RS02-Redis五种数据结构对应的使用场景

作者:互联网

大家好,我是神韵,是一个技术&生活博主。据说是21天成一习惯,那么有没有一个习惯可以让你坚持一年的?我来试试!
每周5讲从2021-7-19开始,今天是2021-7-30,一轮计划是2022-7-18结束。关于文章都是定位为基础,我不敢讲的太深入,因为我怕自己没时间。欢迎来点赞打卡,你们的行动将是我无限的动力。
今日主题是:Redis五种数据结构对应的使用场景

话不多说,下面进入今天主题

有关命令可以参考:五种数据类型的基本使用

一、字符串(string)

场景:缓存、计数器、分布式锁
1、缓存
实现的命令是:set key value EX/get key
一般缓存是保存对象,获取对象。场景是缓存对象id=1,缓存失效时间是1天。
ps:一个key值对应一个object,key太分散,还是用hash类型做缓存适合。

// 设置key=user:1,值为json串且过期时间为一天的缓存
set user:1 '{"id":1,"name":"shenyun"}' EX 86400
// 获取缓存
get user:1

在这里插入图片描述

2、计数器
实现的命令是:incr key
incr key,当key不存在直接设置为0并自增1,后面每次执行命令都自增1。场景是用户id=1访问量两次。

// 新增访问量,0-1
incr pv:1
// 增加访问量 1-2
incr pv:1
// 获取访问量
get pv

在这里插入图片描述

二、哈希(hash)

场景:缓存
1、缓存
实现的命令:hset key field value / hget key field
一般缓存是保存对象,获取对象。场景是缓存对象id=1,缓存失效时间是1天。

// 设置key=user:1,值为json串的缓存
hset user user:1 '{"id":1,"name":"shenyun"}'
// 将key=user的过期时间设置为一天
expire user 86400
// 获取缓存
hget user user:1

.png)

三、列表(list)

场景:队列
实现命令:Ipush key value / rpop key
实现一个队列,输入1 2,弹出1 2

// 从左边入队分别入队 1、2,此时队列是2 1
lpush queue 1 2
// 右边出队两次
rpop queue
rpop queue

四、集合(zet)

场景:微信抽奖
实现命令:sadd key member / spop key
实现shenyun和zhangsan参与抽奖,随机得出一名中奖名单

// 将shenyun和zhangsan用户加入项目wx_item中
sadd wx_item shenyun zhangsan
// 随机抽出一名中奖者并移出此项目
spop wx_item

zhangsan中奖
在这里插入图片描述

五、有序集合(zset)

场景:排行榜
实现命令:zadd key score member / zrevrange key start stop[withscores]
实现文章访问量排行榜

// 添加三篇文章 访问量都是0
zadd article 0 ar1 0 ar2 0 ar3
// 文章ar1访问量增加1,设为1
zadd article 1 ar1
// 文章ar1访问量增加1,设为2
zadd article 2 ar1
// 文章ar2访问量增加1,设为1
zadd article 1 ar2
// 高到低排行,没有显示分数
zrevrange article 0 -1
// 高到低排行,显示分数
zrevrange article 0 -1 withscores

在这里插入图片描述

本文结束!

公众号每天会有推送,欢迎关注公众号查阅。

在这里插入图片描述

标签:缓存,RS02,Redis,场景,user,key,article,数据结构,访问量
来源: https://blog.csdn.net/qq_41055045/article/details/119248945