redis基本命令学习总结
个人学习笔记,谢绝转载!!!
原文:https://www.cnblogs.com/wshenjin/p/14156122.html
KEY 操作:
GET key #获取某个key,不存在则返回nil
DEL key #删除某个key
KEYS pattern #查看符合正则的所有key
EXISTS key [key ...] #判断某个key是否存在,可支持多个,返回存在的个数
EXPIRE key seconds #刷新某个key过期时间
MOVE key db #移动key到某个数据库
string:
redis中的整型也当作字符串处理
SET key value [EX seconds] [PX milliseconds] [NX|XX] #设置key为指定的字符串值。
#参数:
#EX seconds, 设置键key的过期时间,单位时秒
#PX milliseconds, 设置键key的过期时间,单位时毫秒
#NX, 只有键key不存在的时候才会设置key的值
#XX, 只有键key存在的时候才会设置key的值
APPEND key value #如果 key 存在且为字符串,就把 value 追加到原来值的结尾。
APPEND key value #如果 key 不存在,先创建一个空字符串的key,再执行追
GET key #获取key值,不存在则返回nil
GETRANGE key start end #获取指定key索引start位置到end位置所对应的值,索引从0开始
GETSET key value #设置新的key值,并获取设置之前的值,如果key不存在则设置,并返回nil
MGET key [key ...] #批量获取key的值
MSET key value [key value ...] #批量设置key的值
DECR key #数字类型的key自减操作
INCR key #数字类型key自加操作
DECRBY key decrement #数字类型key指定减少数值
INCRBY key increment #数字类型key指定增加数值
STRLEN key #获取key长度
list:
列表中的元素索引从0开始,倒数的元素可以用"-倒数"位置表示,如-2,代表倒数第二个元素,-1则代表最后一个元素。
List是简单的字符串列表,按照插入顺序排序。
一个列表最多可以包含 2∧32 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。
LPUSH key value [value ...] #从列表左边放入一个或者多个元素
LPUSHX key value #当列表存在时,从左边放入一个元素
LPOP key #从列表左边删除一个元素
RPUSH key value [value ...] #从列表右边放入一个或者多个元素
RPUSHX key value #当列表存在时,从右边放入一个元素
RPOP key #从列表右边删除一个元素
LSET key index value #根据索引设置列表中元素的值,当list不存在时报错
LINDEX key index #根据列表索引获取元素值
LINSERT key BEFORE|AFTER pivot value #在列表中,基于某个基准点插入值,pivot代表基准点
LLEN key #获取列表长度
LRANGE key start stop #根据索引获取列表中的元素,列表索引最后一个可以使用-1
LREM key count value #从存于 key 的列表里移除前 count 次出现的值为 value 的元素
#count > 0: 从头往尾移除值为 value 的元素
#count < 0: 从尾往头移除值为 value 的元素
#count = 0: 移除所有值为 value 的元素
RPOPLPUSH source destination #删除source列表中的删除最后一个元素将其追加到destination列表
LTRIM key start stop #根据索引start和stop保留列表元素
hash:
hash 是Redis string类型的field和value的映射表,hash特别适合用于存储对象。每个 hash 可以存储 2∧32 - 1 键值对(40多亿)。
HDEL key field [field ...] #删除hash表中一个或多个字段
HEXISTS key field #判断hash表中字段是否存在
HGET key field #获取hash表中字段的值
HGETALL key #获取hash表中所有字段
HSET key field value #设置hash表中字段的值
HSETNX key field value #字段不存在时候才设置hash表中字段值,
HLEN key #获取hash表中字段个数
HVALS key #获取hash表中所有字段的值
HKEYS key #获取hash表中所有的字段
HSTRLEN key field #获取hash表中指定字段的值的长度
HMSET key field value [field value ...] #批量设置hash表中字段的值
HMGET key field [field ...] #批量获取hash表中字段的值
set:
Set 是通过哈希表实现的的无序集合。集合成员是唯一的,添加,删除,查找的复杂度都是 O(1)。
Set 中最大的成员数为 2∧32 - 1 (4294967295, 每个集合可存储40多亿个成员)。
SADD key member [member ...] #添加一个或多个元素到集合中
SREM key member [member ...] #删除一个或多个集合中的元素
SCARD key #获取集合中元素数量
SMEMBERS key #返回集合中所有的元素
SINTER key [key ...] #获取两个或两个以上集合的交集
SUNION key [key ...] #获取两个或两个以上集合的并集
SDIFF key [key ...] #获取两个或者两个以上集合的差集
SISMEMBER key member #判断元素是否是在指定集合中
SMOVE source destination member #移动一个集合中的元素到另一个集合
SPOP key [count] #移除count个集合中元素,count可选参数,默认为1,即移除一个
sorted set
有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。
有序集合每个元素都会关联一个double类型的分数,redis通过分数来为集合中的成员进行从小到大的排序。
有序集合的成员是唯一的,但分数(score)却可以重复。
ZADD key [NX|XX] [CH] [INCR] score member [score member ...] #向一个有序集合添加成员(元素)
#参数:
#XX: 仅仅更新存在的成员,不添加新成员。
#NX: 不更新存在的成员。只添加新成员。
#CH: 修改返回值为发生变化的成员总数,原始是返回新添加成员的总数 (CH 是 changed 的意思)。
#更改的元素是新添加的成员,已经存在的成员更新分数。
#所以在命令中指定的成员有相同的分数将不被计算在内。注:在通常情况下,ZADD返回值只计算新添加成员的数量。
#INCR: 当ZADD指定这个选项时,成员的操作就等同ZINCRBY命令,对成员的分数进行递增操作。
ZCARD key #获取有序集合中元素个数
ZCOUNT key min max #指定分数范围的元素个数
ZINCRBY key increment member #为有序集的元素的score值加上增加指定的increment
ZRANGE key start stop [WITHSCORES] #根据有序集合中分数区间获取集合中的元素
ZREM key member [member ...] #删除有序集合中一个或多个元素
ZSCORE key member #设置元素在集合中的分数