玩转redis

很多小伙伴刚接触redis都是拿来当缓存用,然而强大的redis可不仅仅能做这点小事。

K V数据库

redis用的最多的就是它的kv结构了,利用set和get实现数据缓存。然而kv结构还有更高级的用法,就是setnx。这个方法在key存在返回false,然后不存在则写入返回true。通过这一特性,很容易实现锁操作。

计数器

redis提供原子增加和减少的功能,就是incr和decr。然后通过这个特性可以拿唯一id,也可以做限流器(防止过多请求)。

list

redis提供list的数据结构。可以从左右两边插入和弹出数据,并且支持阻塞读取(直到有数据才返回)。利用这些特性,我们可以基于list实现队列和栈的数据结构。

我们来看看redis的list的应用场景:

消息(任务)队列

最近若干条热点数据

set

redis的集合支持普通的集合和有序集合。

普通集合可以用于数据去重,并且集合的交集,并集,差集可以快速实现共同好友,二度人脉等需求。

而有序集合可以做排行版。

hash

redis的hash结构,类似于两层的字典。key为字典的第一层,field为字典的第二层。这种结构可以方便存储对象的属性。

订阅和发布

redis支持通过主题的订阅和发布,并且支持模式匹配订阅。但是redis的订阅发布不支持持久化存储,所以发布了信息之后,如果客户端没连接上,消息会直接丢失。

这种功能一般用于解耦,例如一个用户注册之后,要初始化各种信息,还要推送信息。就可以把用户注册当成发布信息,各个子系统订阅该信息,然后再处理。

事务

redis的事务仅仅是把指令打包执行,失败了不会回滚也不会终止后面的命令。

redis支持的数据结构

string

hash

list

set

有序集合

地理空间

其它通用命令

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181023G01WJU00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券