redis 常用命令
redis数据类型:string–字符串类型、hash–散列类型、list–列表类型、set–集合类型、zset–有序集合类型
通用命令
- keys pattern(通配符) 查看key
符号 | 含义 |
---|---|
? | 匹配一个字符 |
* | 匹配任意个字符(包括0) |
[] | 匹配括号区间中的任一字符,可以使用"-"符合表示一个范围,如a[b-d]代表ab、ac、ad |
\x | 匹配x,用于转义字符 |
- exists key 判断key是否存在
- del key 删除key
- del key1 key2 key3 删除多个key
- type key 获取的key的value的数据类型
1、字符串类型(sttring)
注:一个字符串类型键允许存储的数据的最大容量是512 MB
- SET key value 设置key-value
- GET key 获取key的value 键不存在时返回空值nil
- MSET key1 value1 key2 value2 key3 value3 同时设置多个key-value
- MGET key1 key2 key3 同时获取key的value 键不存在时返回空值nil
- INCR key 递增key值 当key不存在时,默认从0开始递增1,当key不是整数时,返回异常(error) WRONGTYPE Operation against a key holding the wrong kind of value
- INCRBY key increment 指定步长增加key值
- DECR key increment 递减key值
- DECRBY key increment 指定步长减少key值
例:DECRBY key 5 = INCRBY key -5
- INCRBYFLOAT key increment 增加指定浮点数
- APPEND key value 向键值末尾追加值,若键不存在,则作用等于set
例:set key hello 输出:hello
例:append key " world" 输出:hello world
- STRLEN key 获字符串长度,键值不存在返回0
位操作(二进制操作)
- GETBIT key offest
- SETBIT key offest value
- BITCOUNT key [start] [end]
- BITOP operation destkey key [key …]
2、散列类型(hash)
注:hash类型不能嵌套其它的数据类型,一个hash类型键可以包含至多2³² - 1 个字段。适合存储对象
- HSET key field value 设置key的字段值
- HGET key field 获取key的字段的值
- HGETALL key 获取key的所有字段的值
- HMSET key field value [field value …] 批量设置key的字段值
- HMGET key field [field …] 批量获取key的字段值
- HEXISTS key field 判断字段是否存在
- HSETNX key field value 字段存在不做操作、不存在则赋值
- HINCRBY key field increment 指定field 增长指定步长increment
- HDEK key field [field …] 删除指定字段
- HKEYS key 只获取字段
- HVALS key 只获取字段的值
- HLEN key 获取字段数量
3、列表类型(list)
注:存储一个有序的字符串列表。一个列表类型键最多能容纳2³²-1个元素
- LPUSH key value [value…] 向列表左边增加元素,返回值表示增加元素后列表的长度
- RPUSH key value [value…] 向列表右边增加元素,返回值表示增加元素后列表的长度
- LPOP key 将列表左边的元素从列表中移除,返回被移除的元素值
- RPOP key 将列表右边的元素从列表中移除,返回被移除的元素值
注:栈 后进先出 LPUSH和LPOP或RPUSH和RPOP 队尾进队尾出
注:队列 先进先出 LPUSH和RPOP或RPUSH和LPOP 队尾进队头出
- LLEN key 获取列表中元素个数
- LRANGE key start stop 获取列表中某一段元素
- LREM key count value 删除列表中前count个值为value的元素,返回值是实际删除的元素个数
注:根据count值的不同,LREM命令的执行方式会略有差异
- 当count > 0时LREM命令会从列表左边开始删除前count个值为 value的元素
- 当count < 0时LREM命令会从列表右边开始删除前count个值为value的元素
- 当count = 0是LREM命令会删除所有值为value的元素
- LINDEX key index 获取指定索引的值
- LSET key index value 设置指定索引的值
- LTRIM key start end 删除指定索引范围之外的所有元素
- LINSERT key BEFORE|AFTER field value 根据before|after 来判断数据加入到field的前面还是后面,返回元素个数
- RPOPLPUSH list1 list2 将元素从list1 转移到list2
4、集合类型(set)
注:一个集合类型(set)键可以存储至多2³²-1个字符串。一个集合中不会存在相同的元素
- SADD key value [value…] 向集合中增加一个或多个元素,返回成功加入的元素的数量,如果键不存在则创建
- SREM key value [value…] 从集合中删除一个或多个元素,并返回删除成功的个数
- SMEMBERS key 获取集合中的所有元素
- SISMEMBER key value 判断元素是否在集合中
- SDIFF key [key…] 多个集合执行差集运算,返回结果
- SDIFFSTORE des key [key…] 多个集合执行差集运算,结果写入名为des的集合中
- SINTER key [key…] 多个集合执行交集运算,返回结果
- SINTERSTORE des key [key…] 多个集合执行交集运算,结果写入名为des的集合中
- SUNION key [key…] 多个集合执行并集运算,返回结果
- SUNION key [key…] 多个集合执行并集运算,结果写入名为des的集合中
注:差集:A - B = {x| x∈A且x∈/ B} 所有属于A且不属于B的元素构成的集合
注:交集:A ∩ B = {x | x ∈ A且x∈B}所有属于A且属于B的元素构成的集合
注:交集:A u B = {x | x ∈ A或x∈B}所有属于A或属于B的元素构成的集合
- SCARD key 获取集合元素个数
- SRANDMENBER key [count] 随机获取集合中的元素 count参数来一次随机获得多个元素
注:1、当count > 0: 从集合里获得count个不重复的元素
注:2、当count < 0: 从集合里获得 |count| 个元素,元素可重复
- SPOP key 从集合中随机弹出一个元素,并返回元素,集合中删除此元素
5、有序集合类型(zset)
- ZADD key score value 向有序集合中加入一个元素和该元素的分数,如果该元素已经存在则会用新的分数替换原有的分数。ZADD命令的返回值是新加入到集合中的元素个数(不包含之前已经存在的元素)。
- ZSCORE key value 获取元素的分数
- ZRANGE key start stop [WITHSCORES] 按照元素分数从小到大的顺序返回索引从start到stop之间的所有元素(包含两端的元素)
- ZREVRANGE key start stop [WITHSCORES] 按照元素分数从大到小的顺序返回索引从start到stop之间的所有元素(包含两端的元素)
- ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offest count] 获得指定分数范围的元素
- ZINCRBY key increment value 增加某个元素的分数,如果指定的元素不存在,Redis在执行命令前会先建立它并将它的分数赋为0再执行操作。
- ZCARD key 获取集合中的元素个数
- ZCOUNT key min max 获取集合中的指定分数范围的元素个数
- ZREM key value [value…] 删除一个或多个元素,返回删除成功的元素个数
- ZREMRANGEBYRANK key start stop 按照排名范围删除元素
- ZREMRANGEBYSCORE key min max 按照分数范围删除元素
- ZRANK key value 按照元素分数从小到大的顺序获得指定的元素的排名(从0开始,即分数最小的元素排名为0)
- ZREVRANK key value 按照元素分数从大到小的顺序获得指定的元素的排名(从0开始,即分数最小的元素排名为0)