redis 命令大全
全局命令:
1、查看所有键:keys *
2、键总数:dbsize
3、检查键是否存在:exists key
4、删除键:del key [key ...]
5、键过期:expire key seconds ——当超过过期时间后,会自动删除键,例:expire hello 10
6、键的剩余过期时间:ttl key ——返回键的剩余过期时间:大于等于0的整数:键剩余的过期时间;-1:键没设置过期时间;-2:键不存在
7、键的数据结构类型:type key ——string(字符串)、hash(哈希)、list(列表)、set(集合)、zset(有序集合);键不存在,则返回none
字符串类型相关命令:
1、设置值:set key value [ex seconds] [px milliseconds] [nx|xx] ——ex seconds:为键设置秒级过期时间;px milliseconds:为键设置毫秒级过期时间;nx:键必须不存在,才可以设置成功,用于添加;xx:与nx相反,键必须存在,才可以设置成功,用于更新。
2、setex key seconds value
3、setnx key value ——setex和setnx两个命令,它们的作用和ex和nx选项一样
4、获取值:get key
5、批量设置值:mset key value [key value ...]
6、批量获取值:mget key [key ...]
7、计数:incr key ——值不是整数,返回错误;值是整数,返回自增后的结果;键不存在,按照值为0自增,返回结果为1。
8、自减:decr key
9、自增指定数字:incrby key increment
10、自减指定数字:decrby key decrement
11、自增浮点数:incrbyfloat key increment
12、向字符串尾部追加值:append key value
13、字符串长度:strlen key
14、设置并返回原值:getset key value
15、设置指定位置的字符:setrange key offeset value ——例:setrange hello 0 e
16、获取部分字符串:getrange key start end ——start和end分别是开始和结束的偏移量,偏移量从0开始计算
哈希类型相关命令
1、设置值:hset key field value
2、设置值:hsetnx key field value ——set和setnx命令一样,只不过作用域由键变为field。
3、获取值:hget key field
4、删除field:hdel key field [field ...]
5、计算field个数:hlen key
6、批量设置field-value:hmget key field [field ...]
7、批量获取field-value:hmset key field value [field value ...]
8、判断field是否存在:hexists key field
9、获取所有field:hkeys key
10、获取所有value:hvals key
11、获取所有的field-value:hgetall key
12、自增指定数字:hincrby key field increment
13、自增浮点数:hincrbyfloat key field increment
14、计算value的字符串长度:hstrlen key field
列表类型相关命令:
1、从右向左插入元素:rpush key value [value ...]
2、从左向右插入元素:lpush key value [value ...]
3、向某个元素前或者后插入元素:linsert key before|after pivot value ——从列表中找到等于pivot的元素,在其前(before)或者后(after)插入一个新的元素value
4、获取指定范围内的元素列表:lrange key start end ——索引下标从左到右分别是0到N-1,但是从右到左分别是-1到-N。lrange中的end选项包含了自身
5、从左到右获取元素:lrange key 0 -1
6、获取列表指定索引下标的元素:lindex key index
7、获取列表最后一个元素:lindex key -1
8、获取列表长度:llen key
9、删除最左侧元素:lpop key
10、删除最右侧元素:rpop key
11、删除指定元素:lrem key count value ——从列表中找到等于value的元素进行删除。count>0,从左到右,删除最多count个元素;count<0,从右到左,删除最多count绝对值个元素;count=0,删除所有。
12、按照索引范围修剪列表:ltrim key start end ——保留列表key第start+1个到第end+1个元素
13、修改指定索引下标的元素:lset key index newValue
14、阻塞式删除最左侧元素:blpop key [key ...] timeout
15、阻塞式删除最右侧元素:brpop key [key ...] timeout ——key[key...]:多个列表的键;timeout:阻塞时间(单位:秒)。
1)列表为空:如果timeout=3,那么客户端要等到3秒后返回,如果timeout=0,那么客户端一直阻塞等下去:如果此期间添加了数据,客户端立即返回
2)列表不为空:客户端会立即返回。
3)如果是多个键,那么brpop会从左至右遍历键,一旦有一个键能弹出元素,客户端立即返回
4)如果多个客户端对同一个键执行brpop,那么最先执行brpop命令的客户端可以获取到弹出的值。
集合类型相关命令:
1、添加元素:sadd key element [element ...]
2、删除元素:srem key element [element ...]
3、计算元素个数:scard key
4、判断元素是否在集合中:sismember key element
5、随机从集合返回指定个数元素:srandmember key [count] ——[count]是可选参数,如果不写默认为1
6、从集合随机删除元素:spop key [count]
7、获取所有元素:smembers key
8、求多个集合的交集:sinter key [key ...]
9、求多个集合的并集:suinon key [key ...]
10、求多个集合的差集:sdiff key [key ...]
11、将交集、并集、差集的结果保存
sinterstore destination key [key ...]
suionstore destination key [key ...]
sdiffstore destination key [key ...]
有序集合类型相关命令:
1、添加成员:zadd key score member [score member ...]
2、计算成员个数:zcard key
3、计算某个成员的分数:zscore key member
4、计算成员从分数从低到高的排名:zrank key member
5、计算成员从分数从高到低的排名:zrevrank key member
6、删除成员:zrem key member [member ...]
7、增加成员的分数:zincrby key increment member
8、返回指定排名范围的成员:
zrange key start end [withscores] ——从低到高返回,如果加上withscores选项,同时会返回成员的分数
zrevrange key start end [withscores]
9、返回指定分数范围的成员:
zrangebyscore key min max [withscores] [limit offset count]
zrevrangebyscore key max min [withscores] [limit offset count]
zrangebyscore按照分数从低到高返回,withscores选项会同时返回每个成员的分数。[limit offset count]选项可以限制输出的起始位置和个数;同时min和max还支持开区间(小括号)和闭区间(中括号),-inf和+inf分别代表无限小和无限大,例:zrangebyscore key (200 +inf withscores
10、返回指定分数范围成员个数:zcount key min max
11、删除指定排名内的升序元素:zremrangebyrank key start end
12、删除指定分数范围的成员:zremrangebyscore key min max
13、集合交集:zinterstore destination numkeys key [key ...] [weights weight [weight ...]] [aggregate sum|min|max]
destination:交集计算结果保存到这个键。
numkeys:需要做交集计算键的个数。
key[key...]:需要做交集计算的键。
weights weight[weight...]:每个键的权重,在做交集计算时,每个键中的每个member会将自己分数乘以这个权重,每个键的权重默认是1。
aggregate sum|min|max:计算成员交集后,分值可以按照sum(和)、min(最小值)、max(最大值)做汇总,默认值是sum。
14、集合并集:zunionstore destination numkeys key [key ...] [weights weight [weight ...]] [aggregate sum|min|max]
单键管理通用命令:
1、键重命名:rename key newkey ——为了防止被强行rename,Redis提供了renamenx命令,确保只有newKey不存在时候才被覆盖
2、随机返回一个键:randomkey
3、键在seconds秒后过期:expire key seconds
4、键在秒级时间戳timestamp后过期:expireat key timestamp
5、查询键的剩余过期时间(毫秒级):pttl key
6、键在milliseconds毫秒后过期:pexpire key milliseconds
7、键在毫秒级时间戳timestamp后过期:pexpireat key milliseconds-timestamp
在使用Redis相关过期命令时,需要注意以下几点。
1)如果expire key的键不存在,返回结果为0:
2)如果过期时间为负值,键会立即被删除,犹如使用del命令一样
3)对于字符串类型键,执行set命令会去掉过期时间
清除键的过期时间:persist key
4)Redis不支持二级数据结构(例如哈希、列表)内部元素的过期功能,例如不能对列表类型的一个元素做过期时间设置。
5)setex命令作为set+expire的组合,不但是原子执行,同时减少了一次网络通讯的时间。
迁移键相关命令:
1、在Redis内部进行数据迁移:move key db
2、在不同的Redis实例之间进行数据迁移:dump+restore
dump key ——dump命令会将键值序列化,格式采用的是RDB格式。
restore key ttl value ——在目标Redis上,restore命令将上面序列化的值进行复原,其中ttl参数代表过期时间,如果ttl=0代表没有过期时间。
3、在Redis实例间进行数据迁移:migrate host port key|"" destination-db timeout [copy] [replace] [keys key [key ...]]
migrate命令整个过程是原子执行的,不需要在多个Redis实例上开启客户端的,只需要在源Redis上执行migrate命令即可。
host:目标Redis的IP地址。
port:目标Redis的端口。
key|"":在Redis3.0.6版本之前,migrate只支持迁移一个键,所以此处是要迁移的键,但Redis3.0.6版本之后支持迁移多个键,如果当前需要迁移多个键,此处为空字符串""。
destination-db:目标Redis的数据库索引,例如要迁移到0号数据库,这里就写0。
timeout:迁移的超时时间(单位为毫秒)。
[copy]:如果添加此选项,迁移后并不删除源键。
[replace]:如果添加此选项,migrate不管目标Redis是否存在该键都会正常迁移进行数据覆盖。
[keys key[key...]]:迁移多个键,例如要迁移key1、key2、key3,此处填写“keys key1 key2 key3”。
遍历键:
1、全量遍历键:keys pattern ——pattern使用的是glob风格的通配符:*代表匹配任意字符。[]代表匹配部分字符;
2、渐进式遍历:scan cursor [match pattern] [count number] ——面向哈希类型、集合类型、有序集合的扫描遍历对应的命令分别是hscan、sscan、zscan
·cursor是必需参数,实际上cursor是一个游标,第一次遍历从0开始,每次scan遍历完都会返回当前游标的值,直到游标值为0,表示遍历结束。
·match pattern是可选参数,它的作用的是做模式的匹配。
·count number是可选参数,它的作用是表明每次要遍历的键个数,默认值是10,此参数可以适当增大。
数据库管理命令:
1、切换数据库:select dbIndex ——select 0 操作将切换到第一个数据库
2、清除当前数据库:flushdb
3、清除所有数据库:flushall
慢查询:
1、获取慢查询日志:slowlog get [n]
2、获取慢查询日志列表当前的长度:slowlog len
3、慢查询日志重置:slowlog reset
事务相关:
1、事务开始:multi
2、事务结束:exec
3、停止事务:discard
4、判断key没有被其他客户端修改过:watch key
Bitmaps相关:
1、设置值:setbit key offset value ——设置键的第offset个位的值(从0算起)
2、获取值:gitbit key offset
3、获取Bitmaps指定范围值为1的个数:bitcount key [start][end] ——[start]和[end]代表起始和结束字节数
4、Bitmaps间的运算:bitop op destkey key[key....]
bitop是一个复合操作,它可以做多个Bitmaps的and(交集)、or(并集)、not(非)、xor(异或)操作并将结果保存在destkey中。
5、计算Bitmaps中第一个值为targetBit的偏移量:bitpos key targetBit [start] [end]
HyperLogLog相关:
1、向HyperLogLog添加元素:pfadd key element [element …]
2、计算一个或多个HyperLogLog的独立总数:pfcount key [key …]
3、合并:pfmerge destkey sourcekey [sourcekey ...] ——求出多个HyperLogLog的并集并赋值给destkey
发布订阅相关:
1、发布消息:publish channel message
2、订阅消息:subscribe channel [channel ...]
3、取消订阅:unsubscribe [channel [channel ...]]
4、按照模式订阅和取消订阅:
psubscribe pattern [pattern...]
punsubscribe [pattern [pattern ...]]
5、查看活跃的频道:pubsub channels [pattern] ——所谓活跃的频道是指当前频道至少有一个订阅者,其中[pattern]是可以指定具体的模式
6、查看频道订阅数:pubsub numsub [channel ...]
7、查看模式订阅数:pubsub numpat
GEO相关:
1、增加地理位置信息:geoadd key longitude latitude member [longitude latitude member ...] ——longitude、latitude、member分别是该地理位置的经度、纬度、成员
2、获取地理位置信息:geopos key member [member ...]
3、获取两个地理位置的距离:geodist key member1 member2 [unit]
4、获取指定位置范围内的地理信息位置集合:
georadius key longitude latitude radiusm|km|ft|mi [withcoord] [withdist] [withhash] [COUNT count] [asc|desc] [store key] [storedist key]
georadiusbymember key member radiusm|km|ft|mi [withcoord] [withdist] [withhash] [COUNT count] [asc|desc] [store key] [storedist key]
georadius和georadiusbymember两个命令的作用是一样的,都是以一个地理位置为中心算出指定半径内的其他地理信息位置,不同的是georadius命令的中心位置给出了具体的经纬度,georadiusbymember只需给出成员即可。其中radiusm|km|ft|mi是必需参数,指定了半径(带单位)
·withcoord:返回结果中包含经纬度。
·withdist:返回结果中包含离中心节点位置的距离。
·withhash:返回结果中包含geohash,有关geohash后面介绍。
·COUNT count:指定返回结果的数量。
·asc|desc:返回结果按照离中心节点的距离做升序或者降序。
·store key:将返回结果的地理位置信息保存到指定键。
·storedist key:将返回结果离中心节点的距离保存到指定键。
5、将二维经纬度转换为一维字符串:geohash key member [member ...]
6、删除地理位置信息:zrem key member
redis 命令大全的更多相关文章
- redis支持哪些数据类型?redis命令大全
一.redis支持的数据类型 1)String 常用命令:set/get/decr/incr/mget等: 应用场景:String是最常用的一种数据类型,普通的key/value存储都可以归为此类: ...
- redis命令大全参考手册
redis功能强大,支持数据类型丰富,以下是redis操作命令大全,基本上涵盖了redis所有的命令,并附有解释说明,大家可以收藏.参考,你一定要知道的是:redis的key名要区分大小写,在redi ...
- Redis命令大全&中文解释&在线测试命令工具&在线中文文档
在线测试命令地址:http://try.redis.io/ 官方文档:http://redis.io/commands http://redis.io/documentation Redis 命令参考 ...
- redis命令大全
redis windows下使用及redis命令 Redis 是一个开源,高级的键值对的存储.它经常作为服务端的数据结构,它的键的数据类型能够是strings, hashs, lists, sets( ...
- Redis命令大全(超详细)
一:序 其实本文的命令大家都可以去官网学习,但是我出这篇文章只是以更直观的方式来解读官网上的命令,让大家一眼可以看得懂,看的明白: 注意:我全文使用的Redis版本为 6.2.x 版本,低版本可能有些 ...
- redis shell命令大全
redis shell命令大全(转自http://blog.mkfree.com/posts/5105432f975ad0eb7d135964) 作者:oyhk 2013-1-28 3:11:35 ...
- Redis 常用命令 大全
Redis 常用命令 发现几个很好的 Redis 常用命令汇总大全网页,分享给小伙伴们~ 1.Redis 命令参考 http://redisdoc.com/string/index.html 2.W3 ...
- 数据库 【redis】 命令大全
以下纯属搬砖,我用Python抓取的redis命令列表页内容 如果想看命令的具体使用可查去官网查看,以下整理为个人查找方便而已 地理位置GEOADD 将指定的地理空间位置(纬度.经度.名称)添加到指定 ...
- Redis学习笔记(3)——Redis的命令大全
Redis是一种nosql数据库,常被称作数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted se ...
随机推荐
- ps:矢量格式图像
假设我们写了一首新的乐曲,要把它交给唱片公司,可以通过两种方式: 把这首乐曲弹奏出来并录制在磁带上. 把这首乐曲的乐谱写下来. 这两种方式的最大区别在于记录的形式. 前者是记述性的.包含乐曲的音频信息 ...
- pandas 新增数据列(直接赋值、apply,assign、分条件赋值)
# pandas新增数据列(直接赋值.apply.assign.分条件赋值) # pandas在进行数据分析时,经常需要按照一定条件创建新的数据列,然后进行进一步分析 # 1 直接赋值 # 2 df. ...
- php内置函数分析之trim()
官方手册中: 类似函数还有两个:ltrim() 和 rtrim().分别处理字符串的左侧.右侧. trim()的具体实现位于:ext/standard/string.c /* {{{ proto st ...
- alert(1) to win 2
function escape(s) { s = s.replace(/"/g, '\\"'); return '<script>console.log("' ...
- Spring中都用到了哪些设计模式
JDK 中用到了那些设计模式?Spring 中用到了那些设计模式?这两个问题,在面试中比较常见.我在网上搜索了一下关于 Spring 中设计模式的讲解几乎都是千篇一律,而且大部分都年代久远.所以,花了 ...
- CUDA Error
第一个问题:CUDA Error: out of memory darknet: ./src/cuda.c:36: check_error: Assertion `0' failed. 已放弃 (核心 ...
- centos 7 网卡绑定 bond0 开机无法自启
https://blog.csdn.net/u012881151/article/details/54910847 1.环境CentOS Linux release 7.2.1511 (Core)li ...
- 测量TSQL语句的性能
你怎样确定你的应用程序执行的怎么样?你可以使用什么工具?每一个开发人员需要确定每一条应用程序TSQL语句是最优的.通过调整每一个查询你可以确定你的应用程序运行得尽可能的高效.你使用开发环境时更容易对应 ...
- prim 模板
#include<cstdio> #include<vector> #include<cstring> #include<set> #define ma ...
- django正常运行确报错的解决方法
django正常运行却报错的处理方法 出处 : https://www.infvie.com/ops-notes/django-normal-operation-error 报错一:self._soc ...