1. 通用命令
keys * : 返回当前数据库的所有键 ,可以模糊匹配 比如 keys abc* 代表 abc 开头的 key; 通配符:* 代表n个字符, ? 表示一个字符;
exists key : 是否存在指定的key, 存在返回1, 不存在返回0;
type key : 返回 key 所储存的值的类型;
expire key second : 设置某个key的过期时间,时间单位为秒;
pexpire key milliseconds : 设置key的过期时间为毫秒;
ttl key : 查看剩余时间, 当key不存在时, 返回-2; 存在但没有设置剩余生存时间时,返回-1,否则,以秒为单位,返回key的剩余生存时间;
pttl key : 以毫秒为单位返回 key 的剩余的过期时间,其他规则同上。
persist key : 取消过期时间;
del key : 删除某个key;
select dbindex : 选择数据库,数据库为0-15(默认一共16个数据库);设计成多个数据库实际上是为了数据库安全和备份;
move key dbindex : 将当前数据中的key转移到其他数据库;
randomkey : 随机返回一个key;
rename key key2 : 重命名key;
echo message : 打印命令(一般用于测试,echo后面跟啥就打印啥);
dbsize : 查看数据库中的key数量;
info : 查看数据库信息;
config get * : 实时传输收到的请求,返回相关的配置,比如 config get requirepass,查看redis.conf中密码的配置信息;
flushdb : 清空当前数据库;
flushall : 清空所有数据库;
2.String类型的常用命令
set key value : 添加或者修改已经存在的一个String类型的键值对;
get key : 根据key获取String类型的value;
mset k1 v1 k2 v2 k3 v3 ... : 批量添加多个String类型的键值对;
mget k1 k2 k3 : 根据多个key获取多个String类型的value;
incr key : 将 key 中储存的数字值增1。如果 key 不存在,那么 key 的值会先被初始化为 0 , 然后再执行 incr 操作;
decr key : 将 key中存储得数字值减1。如果 key 不存在,那么 key 的值会先被初始化为 0 , 然后再执行 decr 操作;
incrby key step : 将 key 中储存的数字加上指定的增量值,例如 incrby num 2,让 num 值自增2;
decrby key step : 将 key 中储存的数字减去指定的步长,例如 decrby num 2,让 num 值自减2;
incrbyfloat : 让一个浮点类型的数字自增并指定步长(功能同上,主要是可以操作浮点数);
setnx key1 value : 如果key1不存在,则设置值 并返回1。如果key1存在,则不设置值并返回0;
(解决分布式锁的方案之一,只有在 key 不存在时设置 key 的值。setnx(set if not exists)命令在指定的
key 不存在时,为 key 设置指定的值);
setex key1 10 value : 设置key1的值为value,过期时间为10秒,10 秒后key1清除;
strlen key : 返回 key 所储存的字符串值的长度;
append key value : 进行字符串拼接,如果对应key不存在,则设置 key-value;
setrange key offset value : 用指定的字符串覆盖给定 key 所储存的字符串值,覆盖的位置从偏移量 offset 开始;
getset key value : getset 命令用于设置指定 key 的值,并返回 key 的旧值,当 key 不存在时,返回 nil;
3.Hash类型的常用命令
hset key field value [field value ...] : 添加或者修改hash类型的key的field的值,可同时设置或者修改同一key下的多个field;
hget key field : 获取一个hash类型key的某一个field的值;
hmget key field [field ...] : 批量获取一个hash类型key的多个field的值;
hgetall key 获取一个hash类型key中的所有field和value;
hkeys key : 获取一个hash类型key中的所有field;
hvals key : 获取一个hash类型key中的所有value;
hlen key : 获取一个hash类型key中field的数量;
hincrby key field step : 让一个hash类型key的field的值(整数类型)自增并指定步长;
hincrbyfloat key field step : 让一个hash类型key的field的值(数值类型,整数或浮点数)自增并指定步长;
hsetnx key field value: (not exists)添加一个hash类型key的field的值,前提是这个field不存在,否则不执行;
hdel key field [field ...] : 删除一个hash类型key中的一个或多个field;
hexists key field :查看哈希表 key 中,指定的字段是否存在(存在返回1,不存在返回0)
4.List类型的常见命令
#赋值语法:
lpush key element [element...] : 向列表头部(左侧)插入一个或多个元素;
rpush key element [element...] : 向列表尾部(右侧)插入一个或多个元素;
lpushx key value : 将一个值插入到已存在的列表头部,如果列表不存在,操作无效;
rpushx key value : 将一个值插入到已存在的列表尾部,如果列表不存在,则操作无效;
#取值语法:
llen key : 获取列表长度;
lindex key index : 通过索引获取列表中的元素;
lrange key start stop : 获取列表指定范围内的元素;
注: 其中 0 表示列表的第一个元素, 1 表示列表的第二个元素,也可以使用负数下标,以 -1 表示列表的最后一个元素,-2 表示列表的倒数第二个元素,以此类推;
删除语法
lpop key : 移除并获取列表的第一个元素(从左侧删除),没有则返回nil;
rpop key : 移除并获取列表的最后一个元素(从右侧删除),没有则返回nil;
blpop key1 [key2] timeout : 移除并获取列表的第一个元素,如果列表没有元素会阻塞列表,直到等待超时或发现可弹出元素为止;
brpop key1 [key2] timeout : 移除并获取列表的最后一个元素,如果列表没有元素会阻塞列表,直到等待超时或发现可弹出元素为止;
ltrim key start stop : 对一个列表进行截取, 让列表只保留指定区间内的元素,不在指定区间内的元素都将被删除;
修改语法:
lset key index value : 通过索引设置列表元素的值;
linsert key before|after mark_element value : 在列表的元素前或者后插入元素,描述: 将值value插入到列表key当中,位于 mark_element 之前或者之后;
高级语法:
rpoplpush source destination : 移除列表的最后一个元素,并将该元素添加到另一个列表的头部(左侧),并返回该元素;
示例描述:
rpoplpush a1 a2 : a1的最后元素移到a2的左侧;
rpoplpush a1 a1 : 循环列表,将a1列表最后一个元素移到最左侧;
brpoplpush source detination timeout : 移除列表的最后一个元素,并将该元素添加到另一个列表的头部(左侧),并返回该元素;如果列表没有元素会阻塞列表 直到 等待超时 或 发现可弹出元素为止;
5.Set类型的常见命令
赋值语法
sadd key member[member...] : 向set中添加一个或者多个元素;
取值语法
scard key : 获取集合的成员数;
smembers key : 返回集合中的所有成员;
sismember key member : 判断member元素是否是集合key的成员;
srandmember key [count] : 返回集合中一个或多个随机元素;
删除语法
srem key member1 [member2...] : 移除集合中一个或多个成员;
spop key [count] : 移除并返回集合中的一个或多个随机元素;
smove source destination member : 将member元素从source集合移动到destination集合;
交集/并集/差集语法
sinter key1 [key2] : 返回给定所有集合的交集(共有数据);
sinterstore destination key1 [key2] : 返回给定所有集合的交集,并存储在destination中;
sunion key1 [key2] : 返回给定所有集合的并集;
sunionstore destination key1 [key2] : 返回所有给定集合的并集,斌存储在destination集合中;
sdiff key1 [key2] : 返回给定所有集合的差集(左侧);
sdiffstore destination key1 [key2] : 返回给定所有集合的差集,并存储在destination中;
6.Zset类型的常用命令
赋值语法
zadd key score1 member1 [score2 member2...] : 向有序集合添加一个或多个成员,或者更新已存在成员的分数;
eg: zadd students 85 Jack 89 Lucy 82 Rose 95 Tom 78 Jerry 92 Amy 76 Miles
zincrby key increment member : 增加member元素的分数increment,返回值是更改后的分数;
eg: zincrby students 2 Amy
取值语法
zcard key : 获取有序集合的成员数; eg : zcard students
zcount key min max : 计算在有序集合中,指定分数区间的成员数; eg : zcount students 0 80
zrank key member : 返回有序集合中指定成员的索引; eg: zrank students Rose
zrevrank key member : 返回有序集合中指定成员的排名; eg: zrevrank students Rose
zrange key start stop [withscores] : 通过索引区间返回有序集合成指定索引区间内的成员(低到高); eg: zrange students 0 2
zrangebyscore students min max : 获取在有序集合中,指定分数区间内的成员; eg: zrangebyscore students 0 80
删除语法
del key : 移除集合
zrem key member [member...] : 移除有序集合中的一个或多个成员,eg: zrem students Tom
zremrangebyrank key start stop : 移除有序集合中给定的排名区间内的所有成员(第一名是0,由低到高排序); eg : zremrangebyrank students 0 2
zremrangebyscore key min max : 移除有序集合中给定的分数区间内的所有成员; eg : zremrangebyscore students 85 89