redis的数据类型:
- key + String
- key + list
- key + set
- key + hash
- key + zset
通用命令:
- select n:选择库(n的范围为0-15)。
- keys *:查看当前库所有的键。
- exists key:查看某个键是否存在。
exists k1 - type key:查看键对应的数据类型。
type k1 - del key:删除某个键。
del k1 - expire key seconds:为某个键设置过期时间。
expire k1 10 - ttl key:查看某个key还有多少秒过期。
ttl k1(-1表示永不过期,-2表示已过期) - dbsize:查看当前数据库key的数量。
- flushdb:清空当前库。
- flushall:清空全部库。
String类型专属命令:
- set key value:添加键值对,如果已存在当前键值对就覆盖。
set k1 v1 - get key:查看键对应的值。
get k1 - append key value:在指定key的值的末尾值添加新的value。
append k1 abc - strlen key:获取指定key对应的值的字符串长度。
strlen k1 - setnx key value:只有在key不存在时才会赋值。
setnx k2 v2 - incr key:对指定的key的值进行+1操作。注意的是只能对数字进行操作,如果为空,新增值为1。
incr k3 - decr key:对指定的key的值进行-1操作。注意的是只能对数字进行操作,如果为空,新增值为-1。
decr k3 - incrby/decrby key 步长:对指定key的值进行+/-指定步长的数字。
incr k3 8 - mset key1 value1 key2 value2 … :同时设置一个或多个键值对。
mset k1 v1 k2 v2 k3 v3 - mget key1 key2 … :同时获取一个或多个key对应的值。
mget k1 k2 k3 - msetnx key1 value1 key2 value2 … :当任何一个key都不存在时,同时创建多个键值对。
msetnx k1 v1 k2 v2 k3 v3 - getrange key start end:截取key对应的值,从指定索引位置开始,到指定索引位置结束。
getrange k1 0 3 - setrange key start value:把指定key值索引位置的值替换为value。
setrange k1 2 abc - set key 过期时间 value:设置键值对的同时设置过期时间。
set k4 10 v4 - getset key value:为指定key设置新值同时获取旧值。
getset k1 abc
List专属命令:
Redis中的list是一个双向链表。元素按照插入的顺序进行排序,可以选择左侧插入和右侧插入。
- lpush/rpush key value1 value2 … : 在左侧或右侧插入一个或多个值。
lpush k1 a b c d - lpop/rpop key value:在列表左侧或者右侧弹出第一个值。如果值都被弹出了,那么键也就不存在了。
lpop k1 - rpoplpush key1 key2:在key1列表右侧弹出第一个值,在key2列表左侧插入。
rpoplpush k1 k2 - lrange key start end:在key列表中,从start索引开始,到end索引结束,截取数据(从左到右)。
lrange k2 0 3 - lindex key 索引:获取指定索引位置的元素(从左侧开始取值)。
lindex k1 1 - llen key:获取指定key对应值的长度。
llen k1 - linsert key before value newvalue:在指定值之前加上新值。
- lrem key n value:从左到右删除n个value。
set专属命令:
Redis中的set与list类似,但是set可以自动去重。
- sadd key value1 value2…:将一个或多个值添加到指定key中。
sadd k1 a b a d - smembers key:取出key中所有对应的值。
- sismember key value:判断指定key中是否包含此value,有就返回1,没有就返回0。
sismember k1 a - scard key:返回指定集合的元素个数
- srem key value1,value2,value3…:删除指定集合中的元素。
- spop key n:从集合中弹出1个或多个值。
- srandmember key n:从指定集合中随机取出n个元素(不会删除)。
- sinter key1 key2:返回两个集合的交集元素。
- sunion key1 key2:返回两个集合的并集元素。
- sdiff key1 key2:返回两个集合的差集元素。
hash专属命令:
Redis中的hash类似于java中的Map<String,Object>。
- hset key field value:为哈希表key中field字段赋值value。
hset student name Tom - hget key field:获取哈希表key中field字段的值。
- hmset key field1 value1 field2 value2 … :批量为key集合中的字段赋值。
- hexists key field:查看哈希表 key 中,给定域 field 是否存在。
- hkeys key:获取哈希表key中所有的field字段。
- hvals key:获取哈希表key中所有的value。
- hincrby key field increment: 为哈希表 key 中的域 field 的值加上增量 increment 。
- hsetnx key field value:当域 field 不存在时,将哈希表 key 中的域 field 的值设置为 value 。
zset专属命令:
Redis中的zset是有序集合,和set很相似。但是在set的基础上,每个字段都关联了评分score。zset会根据score从小到大来排序。
- zadd key score1 value1 score2 value2…:在key中存储指定的value及其评分。
zadd k1 50 a 30 b 70 c - zrange key start stop WITHSCORES: 返回有序集 key 中,下标在 start 和stop之间的元素。如果带WITHSCORES,可以让分数一起和值返回到结果集。
- zrangebyscore key min max [withscores] [limit offset count]:返回有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成员。有序集成员按 score 值递增(从小到大)次序排列。
- zrevrangebyscore key max min [withscores] [limit offset count]:改为从大到小排列。
- zincrby key increment value:为元素的score加上增量increment。
- zrem key value: 删除该集合下,指定值的元素 。
- zcount key min max:统计该集合,分数区间内的元素个数 。
- zrank key value:返回该值在集合中的排名,从0开始。