redis基本命令

  • redis数据类型

    支持5种数据类型:string(字符串)、hash(哈希)、list(集合)、set(集合)、zset(有序集合)

  • string的基本操作命令

    #设置值
    SET key "sometext" #设置key
    MSET key value [key value ...] # 批量设置多个key的值
    SETEX key secconds value # 设置一个key,并设置过期时间(单位秒seconds),相当与:SET mykey value EXPIRE mykey seconds 
    PSETEX key secconds value # 设置一个key,并设置过期时间(单位毫秒milliseconds)
    SETNX key value #当key不存在的时候才会设置成功返回1,否则返回0
    MSETNX key value [key value ...]#批量setnx,有一个key存在则所有操作失败
    
    #获取值
    GET key #获取某个key的值
    MGET key [key ...] #批量获取多个key的值返回list
    GETSET key value #返回旧值,设置为新值
    
    #数字操作
    INCR key #数字型的key自增1
    INCRBY key 10 # 数字型的key增加制定的值(如10),可以是负数(就是减)
    INCRBYFLOAT key 10.2 #数字型的key增加一个浮点数(10.2),可以是负数(就是减)
    DECR key #数字型的key自减1
    DECRBY key value # 数字型的key自减自定值
    
    #字符串
    SETRANGE key offset value #字符串offset(包括offset位置)位置之后的值替换为value的值
    GETRANGE key 0 -1 #获取制定范围的字符,-1表示后面的全部
    STRLEN key #获取key值的长度
    APPEND key value #在制定key后面追加字符串,key不存在会新建
    
    # 位操作
    BITCOUNT key [start end] #获取key制定位置范围bit数
    BITOP AND destkey srckey1 srckey2... # 支持AND(与)、OR(或)、XOR(异或)、NOT(取反)。将srckey1和srckey2...操作的结果放入destkey
    BITPOS key bit [start] [end] #在指定范围查找给定的bit(0,1)位置,没有找到返回 -1
    GETBIT key offset #获取key指定offset的bit值
    SETBIT key offset value #设置key制定offset的bit value
    
  • hash基本操作命令
    # 设置值
    HSET key field value #设置hash中的field的value,如果hash不存在那么会新建
    HMSET key field value [field value ...] #批量 HSET
    HSETNX key field value #设置hash中的field的value,如果hash不存在那么会新建,field存在会失败返回0
    # 获取值
    HGET key field #获取hash中某个field值
    HMGET key field [field ...] #批量HGET
    HGETALL key #获取hash中所有field和value
    HSCAN key cursor #遍历hash ,从cursor=0开始
    # 数字加减
    HINCRBY key field increment #给hash中某个数字型field增加整数值
    HINCRBYFLOAT key field increment #给hash中某个数字型field增加浮点数值
    # key操作
    HKEYS key #返回hash中所有field 名称
    HVALS key #返回hash中所有value值
    HLEN key #返回hash中field的个数
    HSTRLEN key field #返回hash field 的value的length
    HEXISTS key field #判断hash中的某个field是否存在
    HDEL key field [field ...] #删除hash中的field,支持批量
    
  • list基本操作
    LPUSH key value [value ...] #left push 加入新元素到最左边
    LPUSHX key value # 相当于LPUSH,如果列表不存在则返回0,不进行任何操作
    RPUSH key value [value ...]# 从列表的右边增加元素
    RPUSHX key value #相当有RPUSH ,如果列表不存在则返回0,不进行任何操作
    LPOP key # 移除列表左边地一个元素 
    RPOP key # 移除列表右边一个元素 
    LRANGE key start stop # 取start到stop的值 
    LINDEX key index #获取队列特定index的值
    LINSERT key BEFORE|AFTER pivot value #在里面中插入
    LLEN key # 列表长度
    LREM key count value # 在列表中删除指定个数的value,count > 0 从前到后, count < 0 从后到前, count = 0 删除所有等于value的值
    LSET key index value # 设置指定index的value ,index为负,从后到前,最后一个-1
    LTRIM key start stop # 删除 start 到 stop 的值 
    RPOPLPUSH source destination # 从source右边移除 添加到destination的左边
    
    #堵塞API
    BLPOP key [key ...] timeout # LPOP的时候没有值会堵塞,直到timeout时间
    BRPOP key [key ...] timeout # RPOP的时候没有值会堵塞,直到timeout时间
    BRPOPLPUSH source destination timeout # BRPOPLPUSH source没有值会堵塞,直到timeout时间
    
  • set基本操作命令
    SADD key member [member ...] #在集合中添加元素
    SCARD key #集合中元素个数
    SDIFF key [key ...] # 前一个集合减去后一个集合(在前一个集合中不在后一个集合中的元素)
    SMEMBERS key #返回集合中的所有元素 
    SISMEMBER key #判断元素是否在集合中,返回 1或者0 
    SPOP key #随机返回集合中的一个元素
    SMOVE source destination member #把member元素从source集合移到destination集合
    SREM key member [member ...] #删除集合中的元素
    SSCAN #遍历set ,从cursor=0开始
    SINTER key [key ...]#set取交集
    SMEMBERS key #返回set中所有元素
    SRANDMEMBER key [count] #集合中随机返回count个元素
    SUNION key [key ...] #集合中取并集
    SREM key member [member ...]#删除集合元素
    SDIFFSTORE destination key [key ...]#集合的差集存入新set destination 中
    SINTERSTORE destination key [key ...]#集合的交集存入新set destination 中
    SUNIONSTORE destination key [key ...]#集合的并集存入新set destination 中
    
  • zset基本操作命令
    ZADD key [NX|XX] [CH] [INCR] score member [score member ...] 
    # NX :  只新增,member已经存在不会更新
    # XX : 只更新,member不存在不会新增
    # CH : 返回更新和新增的影响条数之和,不加只返回新增的影响条数
    # INCR score member  #member增加score,只支持一个member操作
    ZCARD key #返回集合中元素个数
    ZCOUNT key min max #score在min和max之间的元素
    ZINCRBY key increment member #member增加score
    ZINTERSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX] # 集合交集,见ZINTERSTORE 
    ZLEXCOUNT key min max #分值在两个成员之间的元素数量 [包括 (不包括 - 负无穷 + 正无穷
    ZRANGE key start stop [WITHSCORES] #返回start stop之间的集合,参数withscores 同时返回score
    ZRANGEBYLEX key min max [LIMIT offset count] #分值在两个成员之间的元素 [包括 (不包括 - 负无穷 + 正无穷,LIMIT 类似于MYSQL的分页LIMIT
    ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count] #显示分值在min到max的元素 (1:不包括1 [1 包括1
    ZRANK key member #返回元素分值排名
    ZREM key member [member ...] #删除元素
    ZREMRANGEBYLEX 
    ZREMRANGEBYRANK
    ZREMRANGEBYSCORE
    ZREVRANGE
    ZREVRANGEBYLEX
    ZREVRANGEBYSCORE
    ZREVRANK
    ZSCAN key cursor [MATCH pattern] [COUNT count] #set遍历
    ZSCORE key member #获取成员分值 
    ZINTERSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX] #集合并集操作存放到destination numkeys 操作的keys数量 
    # WEIGHTS 权重 每个集合中的元素 乘以 权重,默认为1
    # AGGREGATE 集合score方法 SUM 相加 MIN 取最小的,MAX 取最大的
    #同一个member最终score算法: (SUM|MIN|MAX) (score1 * weight ,score2*weight)
    
    

  • 通用基本操作命令

    EXISTS key #判断key是否存在
    DEL key #删除key
    EXPIRE key seconds #多少秒后过期
    EXPIREAT key timestamp #在一个时间点过期
    KEYS pattern #搜索key * 返回所有key
    TTL key #返回key的生存时间,单位秒
    PTTL key #返回key的生产时间,单位毫秒
    RENAME key newkey#key重命名,key不存在会报错,如果newkey已经存在那么,newkey原来的数据会丢失
    RENAMENX key newkey#key重命名,key不存在会报错,如果newkey已经存在那么不会成功
    TYPE key#返回key的数据类型