Redis学习笔记:(一)基本数结构与操做

 Redis 数据类型结构redis

        

 

1. 字符串String

    经常使用操做命令以下:

        set  key  value  存入单个字符串键值对
        get  key  获取单个字符串值
        mset key  value [key  value ...]  批量存入多个字符串键值对
        mget  key [key ...]   获取多个字符串值
        del  key  [key  ...]   删除键值对
        expire key  second  设置一个键的过时时间(秒)
        setnx  key  value  若是 key 不存在,至关于set命令, 若是 key 不存在,什么也不作,setnx 其实是 “set if not exists” 的简写json

    原子加减:

         incr  key  将key中储存的数字值加1,返回加1后的结果; 若是值不是数字,返回错误;key 不存在时,会建立一个key并返回1
         decr  key    将key中存储的数字值减1,返回减1后的结果;key不存在时,会建立一个key,并返回-1
         incrby  key  increment    将key中存储的值加上increment,返回相加后的结果
         decrby   key  decrement    将key中存储的值减去decrement,返回相减后的结果数组

2. 数组List

       常见操做命令:缓存

        

        lpush  key  value    从左侧向key对应的列表中加入一个或多个值
        rpush  key  value    从右侧向key对应的列表中加入一个或多个值
        lpop  key    返回并删除key对应列表的头数据
        rpop  key    返回并删除key对应列表的尾数据
        lrange  key  start  end    根据起止坐标获取 key 对应的 list 值
        llen  key    获取 key 对应的 list 的长度 分布式

3. 哈希表 Hash

    经常使用操做命令:

        hset  key  field  value    存储一个哈希表 key  的键值
        hget  key  field    获取哈希表 key  field 对应的键值
        hmset  key  field  value  [field  value ...]    批量存储哈希表键值
        hmget  key  field  [field  ...]    批量获取哈希表中 field 对应的键值
        hdel  key  field  [field ...]    删除哈希表中 field 对应的键值
        hlen  key    获取哈希表 key 中 field 的个数
        hgetall  key    获取哈希表 key 中的全部键值
        hincrby  key  field  incrememt    增长哈希表 key 中 field 字段的 数值性能

4 集合Set

   经常使用操做命令:

        sadd  key  member [member ...]    往集合key中存入元素,元素存在则忽略
        smembers  key    获取集合 key 中全部元素
        scard  key    获取集合 key 中的元素个数
        srem  key  member  [member ...]    从集合key中删除元素
        sismember  key  member    判断 member 元素是否存在于集合 key 中
        srandmember  key  [count]    从集合 key 中随机选出 count 个元素
        spop  key  [count]    从集合 key 中随机取出 count 个元素,并删除spa

   运算:

        sinter  key [key ...]    取交集
        sunion  key [key  ...]    取并集
        sdiff  key  [key ...]    取差集
        sinterstore  destination  key [key ...]    取交集,并将结果存入新集合 destination 中
        sunionstore  destination  key  [key ...]    取并集,并将结果存入新集合 destination 中
        sdiffstore  destination  key [key ...]    取差集,并将结果存入新集合 destination 中对象

5. 有序集合 Zset

    经常使用命令:

        zadd  key  score  member  [score member ...]    往有序集合 key 中添加带分值元素
        zrange  key  start  end    返回有序集合 key 中指定范围的元素,按 score 正序排列
        zrevrange  key  start  stop    返回有序集合 key 中指定范围的元素,按 score 倒序排列
        zrem  key  member  [member ...]    从有序集合 key 中删除元素
        zscore  key  member    返回有序集合 key 中元素 member 的分值
        zincrby  key  increment  member    为有序集合 key 中元素 member 的分值加上 increment
        zcard  key    返回有序集合 key 中的元素的个数blog

6. 应用场景

  1. 对象缓存

    1)set   user:1   value( json 格式数据 )
    2)mset  user:1:name   zhangsan   user:1:age  23
    3)hmset  user  1:name  zhangsan  1:age  23  
  2. 分布式锁

    setnx  key  true   开始执行业务前,返回1 表示获取锁成功,不然失败,
    setnx  key  true  ex  10  nx  ( 10 s 后过时)
    del  key 业务执行完后,释放锁
  3. 计数器

    文章阅读数统计:
    新增阅读  incr  article:readcount:{文章id}
    获取数量  get   article:readcount:{文章id}
  4. 分布式系统全局序列号

    incrby   orderId  3000,redis批量生产序列号提高性能
  5. 抽奖

    使用 set 集合 srandmember、spop
  6. 微博共同关注人

    使用 set 集合 运算
  7. 电商购物车

    key:用户id(111),field:商品id(61234),value:商品数量 添加商品: hset  shopCart:111  61234  1 添加商品数量:hincrby  shopCart:111  61234    减小商品数量:hincrby  shopCart:111  61234   -1 商品总数:hlen  shopCart:111 删除商品:hdel  shopCart:111  61234 获取购物车全部商品:hgetall shopCart:111
相关文章
相关标签/搜索