zoukankan      html  css  js  c++  java
  • redis常用基本命令

    进过一段时间的磨练与实践,今天闲暇之余写下自己这么长时间使用redis的一点心得,才疏学浅,还请多多指教互相学习

    1.1:redis的基本数据结构一(string)

    总所周知Redis所有的数据结构都以唯一的key字符串作为名称,然后通过这个唯一key值来获取相应的 value 数据。不同类型的数据结构的差异就在于 value结构不样。

    string就是其中之一,同时也是redis最简单的数据结构,它的内部表示就是一个字符数组。需要注意的是字符串最大长度为 512MB

    以下是redis操作string常用的命令

    //写入
    set <key> <value>
    //读取
    get <key>
    //检查
    exists <key>
    //删除
    del <key>
    //批量读取
    mget <key> [key...]
    //批量写入
    mget <key> <value> [key value...]
    //设置key过期时间
    expire <key> <int>            #int秒后过期
    //写入一个会过期的数据
    setex <key> <int> <value>     #int秒后过期,等价 set+expire
    //查询并写入
    setnx <key> <value>           #如果<key>不存在就执行 set 创建
                                  #注该操作不会修改已存在的数据
    //自增
    incr <key>                    #注key对应的value须是integer类型才会自增,且不能不能超过longint的最大值
    //加减数据
    incrby <key> <int>             #注key对应的value须是integer类型才会加减                                                                                

    1.2:redis的基本数据结构二(list)

    Redis的list相当于Java语言里面的 LinkedList,注意它是链表而不是数组。以下是redis操作list常用的命令
    //写入
    rpush <key> <value...>
    //获取list长度
    llen <key>
    //左读取
    lpop <key>                     #先进先出
    //右读取
    rpop <key>                     #先进后出
    //读取指定下标数据
    lindex <key> <index>           #相当于get(int index)方法,性能随着index的增大而边差
    //截取
    ltrim <key> <start_index> <end_index>
    //获取自定范围数据
    lrange <key> <start_index> <end_index>

    1.3:redis的基本数据结构三(hash)

    redis的hash相当于java中的HashMap,是无序字典,不同的是reids的字典的值只能是字符串,另外他们rehash的方式不一样

    HashMap是一次性rehash全部,redis采用了渐进式rehash策略

    以下是redis操作hash常用的命令

    //写入
    hset <key> <<key> <value>> #命令行的字符串如果含空格,要用引号括起来
    //读取所有
    hgetall <key>
    //获取hash长度
    hlen <key>
    //获取value
    hget <key> <key>
    //加减
    huncrby <key> <key> <int>

    1.4:redis的基本数据结构四(set)

    redis的set相当于java中的HashSet,内部的键值对是无序、唯一的

    以下是redis操作set常用命令

    //写入
    sadd <key> <value>...     
    //读取全部
    smembers <key>
    //查询value是否存在
    smembers <key> <value>
    //获取长度
    scard <key>
    //读取一个
    spop <key>

    1.5:redis的基本数据结构五(zset)

    zset是redis提供最有特色的数据结构,它类似于java的SortedSet和HashMap的结合体,保证了内部value的唯一性,且给每个value赋予了一个score代表了value的权重

    以下是redis操作zset的常用命令

    //写入
    zadd <key> <score> <value>
    //按score排序列出
    zrange <key> 0 -1
    //按score倒序列出
    zrevrange <key> 0 -1
    //长度
    zcard <key>
    //指定value的score
    zscore <key> <value> <score>
    //查询value排名
    zrank <key> <value>
    //跟据score区间遍历
    zrangebyscore <key> <min_score> <max_score>
    //根据score区间遍历并返回score
    zrangebyscore <key> <min_score> <max_score> withsocres  #inf代表无穷大
    //删除value
    zrem <key> <value>