KEYS pattern
pattern支持glob风格通配符格式
符号 | 含义 |
---|---|
? | 匹配一个字符 |
* | 匹配任意个(包括0个)字符 |
[] | 匹配括号间的任一字符,可以使用“-”符号表示一个范围 |
\x | 匹配字符x,用于转义符号。 |
备注:keys命令需要遍历redis中的所有键,当键的数量较多时会影响性能,不建议生产环境中使用。redis是不区分命令大小写的。
EXISTS key
DEL key[key1……]
可以删除一个或多个键,返回值是删除的键的个数。
备注:del命令的参数不支持通配符,另外del命令支持多个键作为参数,所以还可以执行redis-cil del ‘redis-cil keys “user:”’来打到同样的效果,但是性能更好。*
TYPE key
type命令用来获得键值的数据类型,返回值包括:string(字符串类型)、hash(散列类型)、list(列表类型)、set(集合类型)、zset(有序集合类型)。
字符串类型是Redis中最基本的数据类型,它能存储任何形式的字符串,包括二进制数据。一个字符串类型键允许存储的数据的最大容量是512MB。
SET key value
GET key
INCR key
INCRBY key increment
INCRBY命令和INCR命令基本一样,只不过前者可以通过increment参数指定一次增加的数值。
DECR key
DECRBY key decrement
DECR命令和INCR命令用法相同,只不过是让键值递减。
DECRBY命令和INCRBY命令用法相同,只不过前者可以通过decrement参数指定一次减小的数值。
INCRBYFLOAT key increment
APPEND key value
APPEND作用是向键值的末尾追加value。如果键不存在则将该键值设置为value,即相当于set key value。返回值是追加后字符串的总长度。
STRLEN key
MGET key [key……]
MSET key [key……]
GETBIT key offset
SETBIT key offset value
BITCOUNT key [start] [end]
BITOP operation destkey key [key ……]
HSET KEY FIELD VALUE
HGET KEY FIELD
HMSET KEY FIELD VALUE [FIELD VALUE]
HMGET KEY FIELD [FIELD]
HGETALL KEY
HSET命令的方便在于不区分插入和更新操作,这就意味着修改数据时不用事先判断字段是否存在来决定要执行的是插入操作还是更新操作。当执行的是插入操作时HSET命令会返回1,当执行的是更新操作时HSET命令返回0。进一步讲,当键本身不存在时,HSET命令还会自动建立它。
HEXISTS KEY FIELD
HEXISTS 命令用来判断一个字段是否存在。如果存在则返回1,不存在返回0。
HSETNX KEY FIELD VALUE
HSETNX 命令和HSET命令类似,区别在于如果字段已经存在,HSETNX 命令将不执行任何操作。只不过HSETNX 命令是原子操作,不用担心竞态条件。
HINCRBY KEY FIELD INCREMENT
HDEL KEY FIELD [FIELD……]
HKEYS KEY
KVALS KEY
HLEN KEY
列表类型(list)可以存储在一个有序的字符串列表,内部是使用双向链表实现的,所以向列表两端添加元素的时间复杂度为O(1),获取越接近两端的元素速度就越快,不过使用链表的代价是通过索引访问元素比较慢。
LPUSH KEY VALUE [VALUE……]
RPUSH KEY VALUE [VALUE……]
LPUSH命令用来向列表左边增加元素,返回值表示增加元素后列表的长度。
LPOP KEY
RPOP KEY
该命令执行两步操作,第一部是将列表左边的元素从列表中删除,第二步是返回被移除的元素值。
LLEN KEY
LRANGE KEY START STOP
该命令将返回索引从start到stop之间的所有元素(包含着两端的元素),redis的列表起始索引为0。
LREM KEY COUNT VALUE
该命令会删除列表中前count个值为value的元素,返回值是实际删除的元素个数,根据count值的不同,LREN命令的执行方式会有所不同。
(1)当count>0时,LREM命令会从列表左边开始删除前count个值为value的元素。
(2)当count<0时,LREM命令会从列表右边开始删除前|count|个值为value的元素。
(3)当count=0时,LREM命令会删除所有值为value的元素。
LINDEX KEY INDEX
LSET KEY INDEX VALUE
如果将列表类型当做数组来用,LINDEX命令是必不可少的,LINDEX命令用来返回指定索引的元素,索引从0开始。如果index是负数则表示从右边开始计算索引,最右边元素的索引是-1。LSET是另一个通过索引操作的命令,它会将索引为index的元素赋值为value。
LTRIM KEY START END
该命令可以删除指定索引范围之外的所有元素,指定方法同LRANGE。
LINSERT KEY BEFORE|AFTER PIVOT VALUE
该命令首先会在列表中从做到右查找值为pivot的元素,然后根据第二个参数决定插入到该元素的前面还是后面。
RPOPLPUSH SOURCE DESTINATION
执行过程:先执行RPOP命令再执行LPUSH命令。RPOPLPUSH 命令从SOURCE列表类型键的右边弹出一个元素,然后将其加入到DESTINATION
集合类型和列表有相似之处,但很容易将它们区分的。
类型 | 存储内容 | 有序性 | 唯一性 |
---|---|---|---|
集合类型 | 最多2[32]-1个字符串 | 否 | 是 |
列表类型 | 最多2[32]-1个字符串 | 是 | 否 |
SADD KEY MEMBER [MEMBER …]
SREM KEY MEMBER [MEMBER…]
SMEMBERS KEY
SISMEMBER KEY MEMBER
判断一个元素是否在集合中是一个时间时间复杂度为O(1)的操作。当值存在的时候返回1,不存在返回0。
SDIFF KEY [KEY …]
SINTER KEY [KEY…]
SUNION KEY [KEY…]
(1)SDIFF 命令是用来对多个集合执行差集运算。
(2)SINTER 命令用来对多个集合执行交集运算。
(3)SUNION 命令用来对多个集合执行并集运算。
SCARD KEY
SDIFFSTORE DESTINATION KEY [KEY…]
该命令和sdiff命令功能一样,唯一的区别就是该命令不会直接返回运算结果,而是将结果存储在destination键中。该命令常用于进行多步集合运算的场景中。
SRANDMEMBER KEY [COUNT]
(1)当count为正数时,该命令会随机从集合里获得count个不重复的元素,如果count大于集合中的元素个数,则返回集合中的全部元素。
(2)当count为负数时,该命令会随机从集合里获得|count|个元素,可能相同。
SPOP KEY
有序集合类型与列表类型相似,但是也存在很大的区别。
ZSCORE KEY MEMBER
ZRANGE KEY START STOP [WITHSCORES]
ZREVRANGE KEY START STOP [WITHSCORES]
ZRANGEBYSCORE KEY MIN MAX [WITHSCORES] [LIMIT OFFSET COUNT]
ZINCRBY KEY INCREMENT MEMBER
ZCARD KEY
ZCOUNT KEY MIN MAX
ZREM KEY MEMBER [MEMBER…]
ZREMRANGEBURANK KEY START STOP
ZREMRANGEBYSCORE KEY MIN MAX
ZRANK KEY MEMBER
ZREVRANK KEY MEMBER
ZINTERSTORE DESTINATION NUMKEYS KEY [KEY …] [WEIGHTS WEIGHT
[WEIGHT…]] [AGGREGATE SUM|MIN|MAX]
(1)当AGGREGATE是SUM(默认)时,DESTINATION键中的元素的分数是每个参与计算的集合中该元素分数的和。
(2)当AGGREGATE是MIN时,DESTINATION键中的元素的分数是每个参与计算的集合中该元素分数的最小值。
(2)当AGGREGATE是MAX时,DESTINATION键中的元素的分数是每个参与计算的集合中该元素分数的最大值。