写在前面
Redis的全部命令详情可以在官网查询。
点此Redis系列文章专栏
命令不自己敲一遍,都是白搭,就算忘了也可以翻这篇博客。
命令组
Connection
命令 | 作用 | 示例 |
---|---|---|
ping | ping服务器 ,无参返回pong有参返参 | |
select index | 切换数据库(默认16个数据库,index从0开始) |
Key
命令 | 作用 | 示例 |
---|---|---|
exists key | 返回key是否存在 | |
del key | 删除key,返回删除数量 | |
move key db | 移动key到另一个数据库 | |
type key | 返回key存储类型 | |
keys pattern | 返回正则表达式搜索结果,如keys *查看所有 | |
expire key seconds | 设置key过期时间,过期自动删除 | |
ttl key | 返回key剩余时间(time to live) |
Server
命令 | 作用 | 示例 |
---|---|---|
flushdb | 清空当前数据库数据 | |
flushall | 清空所有数据库所有数据 | |
dbsize | 返回当前数据库keys数量 |
五大数据类型
String
计数器、对象缓存存储等
命令 | 作用 | 示例 |
---|---|---|
set key value | 将key赋值为value | |
get key | 返回key的值,不存在返回nil | |
append key value | 追加一个值到key上 | |
strlen key | 返回string长度 | |
incr key | 加1 | |
decr key | 减1 | |
incrby key increment | 加上一个数 | |
decrby key increment | 减上一个数 | |
getrange key start end | 获取子串,闭区间,第一个下标从0开始,-1表示最后一个,-2倒数第二个,以此类推 | |
setrange key offset value | 替换子串 | |
setex key seconds value | 设置key的值和过期时间 | |
setnx key value | 如果不存在则set(SET if Not eXists) ,常用于分布式锁 | |
mset key value [key value …] | 批量设置 | |
mget key [key …] | 批量获取 | |
msetnx key value [key value …] | 批量设置如果key不存在,同setnx,一起成功一起失败(只要有一个key存在则命令全部失败,即视为一个事务) | |
getset key value | 先set再get |
List
消息队列、堆栈等
命令 | 作用 | 示例 |
---|---|---|
lpush key value [value …] | 向list左边插入值(left push),若不存在则创建之,并返回list大小 | |
rpush key value [value …] | 向list右边插入值(right push),若不存在则创建之,并返回list大小 | |
lrange key start stop | 获取list指定范围内的元素,闭区间,第一个下标从0开始,-1表示最后一个,-2倒数第二个,以此类推 | |
lpop key | 移除list左边第一个元素,并返回所移除元素值 | |
rpop key | 移除list右边第一个元素,并返回所移除元素值 | |
lindex key index | 通过索引获取list值 | |
lrem key count value | 移除前count次出现的值为value 的元素 | |
ltrim key start stop | 截取list | |
rpoplpush source destination | 从source移除最后一个元素,并将其加到destination左边 | |
lset key index value | 设置list的值 | |
linsert key BEFORE/AFTER pivot value | 在pivot前或后面插入一个值 |
Set
命令 | 作用 | 示例 |
---|---|---|
sadd key member [member …] | 向集合插入值,若set不存在则创建之,注意元素不能相同,返回插入成功数量 | |
smembers key | 返回集合所有元素 | |
sismember key member | 判断集合是否包含member,返回1包含,0不包含 | |
scard key | 返回集合内元素数量 | |
srem key member [member …] | 从集合里删除元素,返回成功删除的个数 | |
srandmember key [Count] | 随机返回集合内一个元素 | |
spop key [Count] | 随机删除集合内元素,返回所删元素 | |
smove source destination member | 从source集合中移动member元素到destination集合中 | |
sdiff key [key …] | 返回两集合差集 | |
sinter key [key …] | 返回两集合交集 | |
sunion key [key …] | 返回两集合并集 | |
sdiffstore destination key [key …] | 将差集存入destination集合中,返回元素个数 | |
sinterstore destination key [key …] | 将交集存入destination集合中,返回元素个数 | |
sunionstore destination key [key …] | 将并集存入destination集合中,返回元素个数 | 在这里插入图片描述 |
Hash
map<>key,key[field]=value
用于常变动的数据,同时Hash适合对象,String适合字符串。
命令 | 作用 | 示例 |
---|---|---|
hset key field value | 设置哈希集key中field字段的值。若字段不存在创建之并返回1,否则覆盖之并返回0。 | |
hget key field | 返回哈希集key中field字段所关联的值 | |
hmset key field value [field value …] | 设置哈希集中多个字段的值 | |
hmget key field [field …] | 返回哈希集中多个字段的值 | |
hgetall key | 返回哈希集所有字段和值 | |
hdel key field [field …] | 删除字段及其值 | |
hexists key field | 判断指定字段是否存在(1存在0不存在) | |
hkeys key | 只获取所有字段(field) | |
hvals key | 只获取所有值(value) | |
hincrby key field increment | 对字段的值加上一个数 | |
hsetnx key field value | 如果字段不存在才设置字段和值(返回1),存在则操作无效(返回0) |
Zset
有序集合,即比set多个权值z用来排序。
用于排序、优先队列等,如排行榜、top N
命令 | 作用 | 示例 |
---|---|---|
zadd [NX/XX]: [CH] [INCR] score member [score member …] | 添加时可以指定多个分数/成员对,若成员已添加则更新分数,并更新到正确排序位置,若分数相同则按字典序。 | |
zrange key start stop [WITHSCORES] | 返回区间内的元素,WITHSCORES可以将分数与元素一起返回,升序 | |
zrangebyscore key min max [WITHSCORES] [LIMIT offset count] | 返回有序集合中分数在min和max之间的所有元素,min和max可以是-inf和+inf表示正负无穷。升序 | |
zrevrange key start stop [WITHSCORES] | 返回区间内的元素,降序 | |
zrevrangebyscore key min max [WITHSCORES] [LIMIT offset count] | 返回有序集合中分数在min和max之间的所有元素,降序 | |
zrem key member [member …] | 删除元素 | |
zcard key | 获取元素个数 | |
zcount key min max | 获取分数在min和max间的元素个数 | |
zpopmax key [COUNT] | 删除集合中分数最高的count个元素,count默认1,并返回所删元素及其分数 | |
zpopmin key [COUNT] | 删除集合中分数最低的count个元素,count默认1,并返回所删元素及其分数 |
三种特殊数据类型
Geo
Geo底层是Zset存储,所以也可以用Zset命令操作Geo。
推算地理位置信息,比如共享位置,附近的人,打车距离等。
- 有效的经度从-180度到180度。
- 有效的纬度从-85.05112878度到85.05112878度。
命令 | 作用 | 示例 |
---|---|---|
geoadd key longitude latitude member [longitude latitude member …] | 将指定的地理空间位置(经度、纬度、名称)添加到指定的key中。 | |
geopos key member [member …] | 获取经纬度 | |
geodist key member1 member2 [unit] | 获取两个位置的距离(dist) | |
georadius key longitude latitude radius m/km/ft/mi [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT coun t] [ASC/DESC] | 以给定的经纬度为中心, 返回半径内包含的所有元素 | |
georadiusbymember key member radius m/km/ft/mi [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT coun t] [ASC/DESC] | 以指定元素为中心, 返回半径内包含的所有元素 | |
geohash key member [member …] | 返回位置元素的Geohash表示。hash串越接近距离越近 | |
Geo底层是Zset存储 | Zset可参考前面 |
Hyperloglog
基数统计(不重复的数),比如PV(网页浏览量)统计(一个人多次访问也只算一次)
重点是耗内存非常小,统计
2
64
2^{64}
264只要12KB左右.
命令 | 作用 | 示例 |
---|---|---|
pfadd key element [element …] | 存储元素到HyperLogLog结构中,若基数变返回1,否则返回0 | |
pfcount key [key …] | 返回近似基数 | |
pfcount destkey sourcekey [sourcekey …] | 将多个sourcekey取并集存入destkey |
Bitmap
位存储(即01两种状态),比如用于签到打卡,登录状态等
底层是String
命令 | 作用 | 示例 |
---|---|---|
setbit key offset value | 设置或者清空key的value(01字符串)在offset处的bit值。返回在offset处原来的bit值 | |
getbit key offset | 获取在offset处的bit值 | |
bitcount key [start end] | 统计给定区间内被设置为1的bit数 |
原创不易,请勿转载(
本不富裕的访问量雪上加霜)
博主首页:https://blog.csdn.net/qq_45034708
如果文章对你有帮助,记得关注点赞收藏❤