Redis 基本数据类型

  1. 字符串类型【String】
    set key value # 设置一个key的值
    mset key1 val1 key2 val2 ... #  同时设置多个值
    get key # 获取一个key的值
    mget key1 key2 ... # 同时获取多个值
    strlen key # 返回指定key的字符串长度
    append key value # 在指定key后面追加相应的字符串
    // 数字计算
    incr key # 对key默认加1
    incrby key num # 对key增加指定的num
    incrfloat key value # 增加指定的浮点数
    decr key # 对key减少1
    decrby key num # 对key减少指定的num
    
  2. 散列类型【Hash】
     hset key propretyName value # 散列对象key的属性值proprety设置相应值value
     hget key propretyName
     hmset key propretyName  value propretyName  value propretyName  value ...
     hmget key propretyName  propretyName
     hgetall key # key 所有属性
  3. 列表类型【List】
    lpush key value # 从头部压入指定的value到key
    rpush key value # 从尾部压入指定的value到key
    lpop key value # 从头部弹出列表key中指定的值
    rpop key value # 从尾部弹出列表key中指定的值
    llen key # 返回列表长度,如果不存在则返回0,如果类型不对应则返回错误
    lrange key start end # 获取 key 指定区间的元素
    ltrim key start end # 截取list,保留指定区间内的元素
  4. 无序集合类型【Set】
    sadd keny member # 添加
    srem keny member [member...] # 删除
    smove p1 p2 member # 成员移动
    scard key # 成员个数
    sismember key member # 判断member是否在 key 中
    sinter key1 key2 ... keyN # 交集
    sunion key1 key2 ... keyN # 并集
    sdiff key1 key2 ... keyN # 差集
    smembers key # 返回所有member,结果是无序的
  5. 有序集合类型【Sorted Set】
    [key:集合名称; score:成员排序; member:成员名]
    zadd key score member # 添加
    zrem key member # 删除
    zincrby key incr member # 增加指定成员的排序
    zrank key member # 按score从小到大的排序并返回指定成员的排名(下标)
    zrevrank key member # 按score从大到小排序并返回指定成员的排名(下标)
    zcard key  # 集合长度
    zscore key element # 返回给定元素对应的score
    zranger key start end # 按score正序,返回指定区间的元素
    zrevrange key start end  # 按score逆序,返回指定区间的元素
    zremrangebyrank key min max # 删除集合中排名在给定区间的元素
  6. 二进制
    setbit key offset value # 直接设置指定key的二进制位数值
    getbit key offset # 获取一个字符串类型键指定位置的二进制位的值(0|1),索引从0开始;如果索引超过的话,则默认返回0
    bitcount key [start] [end] #
    bitop operation destkey key [key ...] #
    
  7. Key 操作
    del key # 删除一个key; 
            # t=O(N) : N 为删除的Key个数;返回删除的个数
    dump key # 序列化key,返回序列化的值
    restore key ttl serialized-value # 返回序列化
    type key # 返回一个key的类型;
      # none key不存在
      # string 字符串
      # list 列表
      # set 集合
      # zset 有序集合
      # hash 哈希表
    expire key seconds  # 设置key的过期时间; t=O(1)
    pexpire key milliseconds # 以毫秒设置key的生存时间; t=O(1)
    expireat key timestamp # 按Unix时间戳设置过期时间; t=O(1)
    pexpireat key millseconds-timestamp # 以毫秒设置key的生存时间; t=O(1)
    keys pattern # 返回所有的key,可以使用通配符; t=O(N) N: key的个数
                 # ?:单个字符;*:多个字符;[字符...]:字符列表
                 # 如果数据太多,会出性能问题
    exists key # 检查key是否存在;t=O(1)
    migrate host port key destination-db timeout [COPY] [REPLACE] 
      # 传递Key到指定的远程库上,默认是传递成功,则删除
      # 在本机执行 dump 命令,在远程实例上执行 restore 命令
    move key db # 移动key到指定的DB里面;t=O(1)
    object subcommand [args [args]] # 查看Redis对象的结构,用于DEBUG;t=O(1)
    persist key # 移除key的生存时间;t=O(1)
    ttl key # 返回生存时间; t=O(1); 单位为秒
      # key不存在,返回-2; 没有剩余时间为-1;其它时间
    pttl key # 返回生存时间; t=O(1); 单位毫秒
    randomkey # 随机返回一个key,不删除;t=O(1)
    rename key newKey # 重命名key,会覆盖newKey;t=O(1)
    renameNx key newKey # 当且仅当newKey不存在时才执行;t=O(1);
    sort key [by pattern] [limit offset count] [get pattern [get pattern...]] [asc|desc] [alpha] [store destination] 
      # 返回或保存给定列表、集合key中经过排序的元素
      # 排序默认以数字作为对象,值被解释为双精度浮点数,再比较
      # t=O(N+M*log(M)) N 元素数量,M返回的元素数量
      例子1:sort key # 默认按数字排序、顺序为:ASC;
      例子2:sort key ALPHA # 按字符排序
      例子3:sort key limit 0 5 # 限制返回结果(分页?)
      例子4:sort key by user_* 
        # 外部Key排序;
        # user_* 为占位符,取出key中的值后,组成 user_key[N],再来排序
      例子5:sort key get user_* # 根据排序结果,取出外部Key的值
      例子6:sort uidList BY user_level_* GET user_name_* 
        # 结合BY与GET排序,GET 可以多个
      例子7:sort uid GET # GET user_level_* # GET # 获取被排序的值
      例子8:sort uid by no-exsits-key # 不存在的Key,实现直接返回未排序结果
      例子9:sort uid by no-exsits-key GET # GET user_name_* 
        # 不排序返回多个结果
      例子10:sort uid by user_info_*->level # 哈希表排序
      例子11:sort uid by user_info_*->level GET user_info_*->name 
        # 哈希排序后取值
      例子12:sort uid store store_key # 排序后,覆盖形式保存到store_key中
    scan cursor [Match pattern] [Count count] # 扫描库中的键
      # scan 176 MATCH *11* COUNT 1000
    sscan key cursor [Match pattern] [Count count]: 扫描集合键中的元素
      # sscan myset 0 match f*
    hscan key cursor [Match pattern] [Count count]: 扫描哈希键中的元素
    zscan key cursor [Match pattern] [Count count]: 扫描有序集合中的元素与分值