A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 小江哥 于 2019-1-15 13:21 编辑

字符串类型
        场景:缓存、计数器、分布式锁
        API:
                *get key   获取key对应的value
                *set key value   设置key-value
                *del key    删除key-value
                *incr key    key自增1,如果key不存在,自增后get(key)=1
                *decr key    key自减1,如果key不存在,自减后get(key)=-1
                *incrby key k    key自增k,如果key不存在,自增后get(key)=k
                *decrby key k    key自减k,如果key不存在,自减后get(key)=-k
                *set key value    不管key是否存在,都设置
                *setnx key value    key不存在,才设置
                *set key value xx    key存在,才设置
                *mget key1 key2 key3    批量获取key,原子操作
                *mset key1 value1 key2 value2    批量设置key-value
                *getset key newvalue    set key newvalue并返回旧的value
                *append key value    将value追加到旧的value
                *strlen key    返回字符串的长度(注意中文)
                *incrbyfloat key 3.5    增加key对应的值3.5
                *getrange key start end    获取字符串指定下标所有的值
                *setrange key index value    设置指定下标所有对应的值
哈希类型
        哈希键值结构:key   field value
        场景:用户信息
        特点:Mapmap    filed不能相同,value可以相同
        API:
                *hget key field    获取hash key对应的field的value
                *hset key field value    设置hash key对应field的value
                *hdel key field    删除hash key对应field的value
                *hexists key field    判断hash key是否有field
                *hlen key    获取hash key field的数量
                *hmget key field1 field2 ... fieldN    批量获取hash key的一批field对应的值
                *hmset key field1 value1 field2 value2 ... fieldN valueN    批量设置hash key的一批field value
                *hgetall key    返回hash key对应所有的field和value
                *hvals key    返回hash key对应所有filed的value
                *hkeys key    返回hash key对应所有field
                *hsetnx key field value    设置hash key对应的value,如果field已经存在,则失败
                *hincrby key field intCounter    hash key对应的field的value自增intCounter
                *hincrbyfloat key field floatCounter hincrby浮点数版本
列表类型
        结构:key  elements
        场景:微博TimeLine
        特点:有序、可以重复、左右两边可以插入弹出
        API:
                *rpush key value1 value2 ... valueN    从列表右端插入值
                *lpush key value1 value2 ... valueN    从列表左端插入值
                *linsert key before|after value newValue    在list指定的值前|后插入newValue
                *lpop key    从列表左侧弹出一个item
                *rpop    从列表右侧弹出一个item
                *lrem key count value    根据count值,从列表中删除所有value相等的项
                                        (1)count>0,从左到右,删除最多count个value相等的项
                                        (2)count<0,从右到左,删除最多Math.abs(count)个value相等的项
                                        (3)count=0,删除所有value相等的项
                *ltrim key start end    按照索引范围修剪列表
                *lrange key start end(包含end)    获取列表指定索引范围所有item
                *lindex key index    获取列表指定索引的item
                *llen key    获取列表长度    时间复杂度:O(1)
                *lset key index newValue    设置列表指定索引值为newValue
                *blpop key timeout    lpop阻塞版本,timeout是阻塞超时时间
                *brpop key timeout    rpop阻塞版本,timeout是阻塞超时时间
        TIPS:
                1、LRUSH + LPOP = Stack
                2、LPUSH + RPOP = Queue
                3、LPUSH + LTRIM = Capped Collection
                4、LPUSH + BRPOP = Message Queue
集合类型
        结构:key values
        特点:无序、无重复、支持集合间操作
        应用:抽奖系统、给用户添加标签、给标签添加用户、共同关注
        API:
                *sadd key element    向集合key添加element,如果element已经存在,添加失败
                *srem key element         将集合key中的element移除掉
                *scard key    计算集合大小
                *sismember key element    判断element是否在集合中
                *srandmember key count    从集合中随机挑选count个元素
                *spop key    从集合中随机弹出一个元素
                *smembers key    获取集合所有元素
                *sdiff key1 key2    差集
                *sinter key1 key2    交集
                *sunion key1 key2    并集
                *sdiff|sinter|sunion store destkey    将结果保存在destkey中
有序集合类型
        结构:key    scores values
        特点:无重复元素、有序
        应用:排行榜
        API:               
                *zadd key score element(可以是多对)    添加score和element
                *zrem key element(可以是多个)    删除元素
                *zscore key element    返回元素的分数
                *zincrby key increScore element    增加或减少元素的分数
                *zcard key    返回元素的总个数
                *zrange key start end    返回指定索引范围内的升序元素【分值】
                *zrangebyscore key minScore maxScore    返回指定分数范围内的升序元素【分值】
                *zremrangebyrank key start end    删除指定排名内的升序元素
                *zremrangebyscore key minScore maxScore    删除指定分数内的升序元素

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马