你真的懂redis吗?

作者: yubang | 来源:发表于2017-01-04 01:42 被阅读732次
    缓存

    我相信大部分互联网应用都是用redis作为缓存的,因为相对于memcached来说,redis的kv结构效率区别不大,并且还有hash这种方便的结构,并且redis还有持久化的能力,可以防止重启机器导致的数据丢失而造成数据击穿问题。

    计数器

    例如记录文章的点击数,用户每次访问文章就自增一。然后还可以利用自减操作来判断库存问题。由于是原子性操作,可以避免并发问题,而且性能很好。

    队列
    • 用做消息队列,在要求不高的情况下可以替代rabbitmq等消息中间件
    • 由于redis把数据添加到队列是返回添加元素在队列的第几位,所以可以做判断用户是第几个访问这种业务
    • 队列不仅可以把并发请求变成串行,并且还可以做队列或者栈使用
    集合
    • 可以保存一堆预生成的随机数
    • 可以避免一些操作重复调用,因为加入集合的操作是返回true或者false
    发布和订阅

    这种特性类似于广播,对于一些不用查看历史记录的业务,可以利用这个特性实现类似于聊天室或者系统消息等业务。

    字符串操作

    这个数据结构,对于普通应用,使用不高,但是对于大数据和节省空间的场合还是比较常用的,特别是位操作。

    其它
    1. hash结构的数据有效期只能在最外层的key来设置失效时间。
    2. redis的队列支持没数据的时候阻塞获取请求直到有数据(这是对于拉取任务的队列是一个很好的特性)
    3. redis还支持事物,对于数据准确性很高的场合非常友好。
    4. redis不要开放外网访问权限,如果实在需要开启请注意设置密码。

    相关文章

      网友评论

        本文标题:你真的懂redis吗?

        本文链接:https://www.haomeiwen.com/subject/reqovttx.html