zoukankan      html  css  js  c++  java
  • [Redis]数据类型及命令

    1:全局 key 操作

    keys *    查询当前库的所有key

    keys my* 获取当前数据库中所有以my开头的key

    exists <key>  判断某个key是否存在,存在返回1,不存在返回0

    type <key>  查看key的类型

    del <key>  删除某个key

    select 0   打开 ID 为 0 的数据库(一共16个数据库)

    expire <key> <seconds>  为key设置存在时间,单位秒,如:短信验证

    ttl <key>  查看还有多少秒过期,-1表示永不过期,-2表示已过期

    rename mykey mykey1  将 mykey 改名为 mykey1

    dbsize  查看当前数据库key的数量

    Flushdb  清空当前库

    Flushall  通杀全部数据库(慎重)

    2:String类型(字符串)

    
    

    string是redis最基本的类型,一个key对应一个value。

    string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。

    string类型是Redis最基本的数据类型,一个键最大能存储512MB。


    set <key> <value>  添加键值对

    getset <key> <value> 设置新的值,同时获取旧的值

    setnx <key> <value> 只有该键不存在时,设置key的值

    setex <key> <过期时间> <value>   设置key-value的同时,设置过期时间,单位为妙

    mset <key1> <value1> <key2> <value2>  同时设置一个或多个键值对

    msetnx <key1> <value1> <key2> <value2>  在key不存在时,同时设置一个或多个key-value

    setrange <key> <起始位置> <value>  用value覆写key所存储的字符串值,从起始位置开始


    del <key>  删除该键


    append <key> <value>  若该键并不存在,返回当前 Value 的长度,该键已经存在,返回追加后 Value的长度

    incr <key>  将key中存储的数字值增1,只能对数字值操作,如果为空,新增值为1

    decr <key>  将key中存储的数字值减1,只能对数字值操作,如果为空,新增值为-1

    incrby /decrby <key> <步长>  将key中存储的数字值增减,自定义步长


    get <key>  查询key对应的value

    strlen <key>  获取值的长度

    mget <key1> <key2> <key3>  同时获取一个或多个value

    getrange <key> <起始位置> <结束位置>  获取值的范围,类似java中的subString

    3:List类型(单键多值)

    List类型是按照插入顺序排序的字符串链表。和数据结构中的普通链表一样,我们可以在其头部(left)和尾部(right)添加新的元素。

    在插入时,如果该键并不存在,Redis将为该键创建一个新的链表。与此相反,如果链表中所有的元素均被移除,那么该键也将会被从数据库中删除。

    List中可以包含的最大元素数量是4294967295。


    lpush/rpush <key> <value1> <value2>
      从左边/右边插入一个或多个值

    lpushx/rpushx <key> <value> 若key不存在,此命令无效, 若key存在,则左/右插入value中


    linsert <key> before/after <value> <NewValue>  在<value>前/后插入<NewValue>值



    lpop/rpop <key>  从左边或右边吐出一个值,值在键在,值光键死

    lrem <key> <n> <value>  从左边删除n个value(从左到右),如果n为正数代表从左往右删,n为负数代表从右往左删几个,n为0时代表删除所有该元素


    rpoplpush <key1> <key2>  从<key1>列表右边吐出一个值,添加到<key2>的左边


    lrange <key> <start> <stop>  按照索引下标获得元素(从左到右) 0、-1

    lindex <key> <index>  按照索引下标获得元素(从左到右)

    llen <key>  获得列表长度

    4:Set类型

    Redis提供与List类似是一个列表的功能,特殊之处在于set可以自动排除重复元素,并且set提供了判断某个成员是否在一个set集合内的重要接口

    Redis的set是String类型的无序集合,它底层是一个value为null额hash表,所以添加、删除、查找的复杂度都是 



    sadd <key> <value1> <value2>  将一个或多个member元素添加到集合中,以及存在集合中的member元素将被忽略


    srem <key> <value1> <value2>  删除集合中的某个元素

    spop <key>  随机从该集合中吐出一个值,用于抽奖


    smove <key1> <key2> <value>  将value从key1移动到key2


    smembers <key>  取出该集合的所有元素

    sismember <key> <value>  判断集合<key>是否含有该<value>值,有返回1,没有返回0

    scard <key>  返回该集合的元素个数

    srandmember <key> <n>  随机从该集合中取出n个值,不会从集合中删除

    sinter <key1> <key2>  返回两个集合的交集元素

    sunion <key1> <key2>  返回两个集合的并集元素

    sdiff <key1> <key2>  返回两个集合的差集元素

    5:Hash类型

    Redis hash是一个键值对集合。Hash是一个String类型的field和value的映射表,Hash适用于存储对象
    类似Java里的Map<String,String>, 每一个Hash可以存储4294967295个键值对。


    Hash的类型格式解释:
    redis.key = key
    redis.value = (map.field = key,map.value = value)



    hset <key> <field> <value>  给key集合中的field键赋值value

    hmset <key> <field> <value> <field> <value>  批量设置hash的值

    hsetnx <key> <field> <value>  仅在field不存在时,将哈希表key中 field 的设为 value


    hdel <key> <field>  删除key中field键


    hincrby <key> <field> <increment>  为哈希表key中的field的值加上增量increment,increment可为正负数


    hget <key1> <field>  从key1集合中取出field的value值 

    hgetall <key>  获取key中所有的 field 和 value

    hexists <key> <field>  查看hash表key中,给定field是否存在

    hkeys <key>  列出该hash集合所有的field

    hvals <key>  列出该hash所有的value
     

    6:ZSet(sorted set)类型

    Redis有序集合zset与普通集合set非常相似,是一个没有重复元素的字符串集合。

    Sorted-Sets中的每一个成员都会有一个分数(score)与之关联,Redis正是通过分数来为集合中的成员进行从小到大的排序。

    成员是唯一的,但是分数(score)却是可以重复的

    
    
    ZSet的类型格式解释:
    redis.key = key
    redis.value = (map.value= key,map.score= value)



    zadd <key> <score1> <value1> <score2> <value2>  将一个或多个member元素及其score值
                                  添加元素时,如果value存在,score不同时,新值替换旧值
                                       如果socre一样,value不同时,添加新元素


    zrem <key> <value>  删除该集合下,指定值的元素



    incrby <key> <increment - 增量> <value>  为元素score加上增量


    zrange <key> <start> <stop> [withscores]  返回有序集key中,下标从start到stop的成员 一般开始为0,结束为-1,带上witscores,可以让分数一起返回

    zrangebyscore <key> <min> <max> <withscores> <limit offset count>  
                      返回有序集key中,所有score值介于 min 和 max 之间的成员(包括等于min和max),score值递增(从小到大)排序 0 到 -1

    zrevrangebyscore <key> <max> <min> <withscores> <limit offset count>  
                      返回有序集key中,所有score值介于 max 和 min 之间的成员(包括等于max和min),score值递增(从小到大)排序 -1 到 0

    zcount <key> <min> <max>  统计该集合,分数区间内的元素个数

    zrank <key> <value>  返回该value在集合中的排名,从0开始
  • 相关阅读:
    动态规划01背包
    动态规划矩阵连乘
    分治法归并排序
    动态规划最长公共子序列
    贪心算法活动安排
    分治法二分查找
    vue 可拖拽可缩放 vuedraggableresizable 组件常用总结
    rifilter in python discussed in 3delight
    3delight linear work flow
    pixar stereo rendering doc
  • 原文地址:https://www.cnblogs.com/yan-sh/p/13095561.html
Copyright © 2011-2022 走看看