zoukankan      html  css  js  c++  java
  • redis在项目中的使用场景

    数据类型 使用场景
    String

    比如:我想知道什么时候封锁一个IP(某一个IP地址在某一段时间内访问的特别频繁,那有可能这个IP可能存在风险,所以对它进行封锁),使用Incrby命令记录当前IP访问次数 

    存储用户信息【id,name,age】

    存储方式:set(userKey,用户信息字符串)

    Hash

    存储用户信息【id,name,age】

    存储方式:Hset(key,filed,value)

    hset(userKey,id,101)

    hset(userKey,name,"admin")

    hset(userKey,age,23)

    这样存储的好处:当修改用户信息某一项属性值时,直接通过filed取值,并修改值

    -----修改案例------

    hget(userKey,id)

    hset(userKey,id,102)

    ------------------------------

    为什么不使用String存储?

    获取方式:get(userKey)

    会把参数为userKey对应的用户信息字符串全部进行反序列号,而用户信息字符串包含了用户所有的信息

    如果我只修改用户的ID,那反序列化的其他信息其实是没有任何意义的

    序列化与反序列化是由IO进行操作的,使用String类型存储增加了IO的使用次数,降低了程序的性能

    对值为某类信息时不建议使用String类型存储

    List

    实现最新消息的排行,还可以利用List的push命令,将任务存在list集合中,同时使用另一个pop命令将任务从集合中取出

    Redis——list数据类型来模拟消息队列。

    比如:电商中的秒杀就可以采用这种方式来完成一个秒杀活动 

    set

    特殊之处:可以自动排重。

    比如微博中将每个人的好友存在集合(Set)中

    如果求两个人的共同好友的操作,我们只需要求交集即可。(交/并集命令)

    Zset

    有序集合(sorted set),以某一个条件为权重,进行排序。

    比如:京东看商品详情时,都会有一个综合排名,还有可以安装价格、销量进行排名

  • 相关阅读:
    latex在vim中的代码片段
    latex设置不同中英文字体
    React 路由基本配置
    React网络请求
    React生命周期函数
    React父子传值中propTypes defaultProps
    React父子组件传值
    React todolist案例和持久化实现
    React表单
    react事件对象 、键盘事件、 表单事件 、ref获取dom节点、React实现类似vue双向数据绑定
  • 原文地址:https://www.cnblogs.com/chai-blogs/p/12639452.html
Copyright © 2011-2022 走看看