Redis基本使用案例

  • String 类型

String类型是Redis用的较多的一个基本类型,也是最简单的一种类型,

String类型的应用场景

1,分布式缓存

        Redis中会缓存一些常用的热点数据,可以提升数据查询的性能。

2,限流

        使用计数器实现手机验证码频率限流。

3,阅读量和点赞量

        incr key每次阅读加1,

        get key 获取阅读量

        decr key 每次取消点赞减1

  • List列表类型

列表类型(list)可以存储一个有序且可重复的字符串列表,是一个链表的结构,对于插入,删除元素速度比较快查询元素比较慢

实际使用场景

1, 消息队列

列表类型可以使用 rpush 实现先进先出的功能,同时又可以使用 lpop 轻松的弹出(查询并删除)第一个元素,所以列表类型可以用来实现消息队列,

在发红包的场景中,假设发一个10元,10个红包,需要保证抢红包的人不会多抢到,也不会少抢到,这种情况下,

  • Hash类型

Hash类型大家应该都不陌生,他就是一个键值对集合,Hash相当于一个 string 类型的 key和 value 的映射表,key 还是key,但是value是一个键值对(key-value),类比于 Java里面的 Map> 集合。

Hash实际应用场景

购物车功能

•1.以用户ID作为key

•2.以商品id作为field

•3.以商品的数量作为value

  • Set类型

集合类型 (Set) 是一个无序,不可重复键值集合。它的存储顺序不会按照插入的先后顺序进行存储。

set类型的实际应用场景

1.给用户添加标签。

sadd user:1:basketball game coding swing sadd user:2:sing coding sleep basketball

使用sinter命令,可以来计算用户共同感兴趣的标签

sinter user:1 user:2

2,抽奖场景

SMEMBERS key 查询参与抽奖的列表

SRANDMEMBER key 2 从该集合中随机抽取2个元素,抽取的元素不会从集合中删除,

SPOP key 2 从集合中随机抽取2个元素,会从集合中删除抽取元素(可以实现抽泣一等奖和二等奖)

3,集合运算

SINTER key1,key2,key3 取多个集合中的交集,实现共同关注的人

SUNION key1,key2,key3 取多个集合中的并集

  • Zset类型

在集合类型的基础上,有序集合类型为集合中的每个元素都关联了一个分数(浮点型),这使得我们不仅可以完成插入、删除和判断元素是否存在等集合类型支持的操作,还能获得分数最高(或最低)的元素、获得指定分数范围内的元素等与分数有关的操作。元素是有序的,按照分数从小到大排序

ZSet的使用场景

排行榜系统有序集合比较典型的使用场景就是排行榜系统。例如学生成绩的排名。

       添加用户赞数例如小编Tom发表了一篇博文,并且获得了10个赞。

        zadd user:ranking article1 10

        用户赞数这个时候有一个读者又觉得Tom写的不好,又取消了赞,此时需要将文章的赞数从榜单中减去1,可以使用 zincrby。

        zincrby user:ranking -1 article1

        查看某篇文章的赞数

        ZSCORE user:ranking arcticle1

热点话题排名比如想微博的热搜,就可以使用ZSet来实现。

        zrevrange key 0 10 withscores 按照分数进行排行,取前10条

说出以上使用案例,说明你使用过redis,面试官会认为你真正的使用过redis

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 字符串类型: - 缓存系统:使用redis作为缓存系统,将频繁访问的数据存储为字符串类型,例如用户的session信息、页面的静态内容等。 - 计数器:使用redis的incr/decr命令实现计数器功能,例如网站的PV/UV统计、商品的销量统计等。 - 队列:使用redis的LPUSH/RPUSH和LPOP/RPOP命令实现队列功能,例如消息队列、任务队列等。 2. 哈希类型: - 用户信息存储:将用户的基本信息存储为哈希类型,例如用户的昵称、头像、性别等。 - 商品信息存储:将商品的基本信息存储为哈希类型,例如商品的名称、价格、库存等。 - 配置信息存储:将应用程序的配置信息存储为哈希类型,例如数据库的连接信息、日志的级别等。 3. 列表类型: - 排行榜:将用户的得分等信息存储为列表类型,使用redis的ZADD命令实现排行榜功能。 - 最新消息:将最新的消息存储为列表类型,使用redis的LPUSH/RPUSH和LPOP/RPOP命令实现消息队列功能。 - 历史记录:将用户的历史记录存储为列表类型,例如用户的搜索历史记录、浏览历史记录等。 4. 集合类型: - 标签系统:将文章的标签信息存储为集合类型,使用redis的SADD命令实现标签系统功能。 - 共同好友:将用户的好友关系存储为集合类型,使用redis的SINTER命令实现查找共同好友功能。 5. 有序集合类型: - 排行榜:将用户的得分等信息存储为有序集合类型,使用redis的ZADD命令实现排行榜功能。 - 地理位置:将地理位置信息存储为有序集合类型,使用redis的GEOADD命令实现地理位置搜索功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值