Redis命令

Redis命令

红色字体 :命令名
蓝色字体 :必要参数

橙色字体\] :可选参数 ## 基本操作 | 命令 | 描述 | |---------------------------------------------------------------------------------------|----------| | redis-server | 启动Redis | | redis-cli redis-cli -h 127.0.0.1 -p 6379 -a "password" telnet 127.0.0.1 6379 (telnet) | 连接到Redis | | quit/exit | 退出 | ## key相关操作 select 用于切换数据库,Redis有16个数据库,索引为0到15,conf文件中可查看配置详情 切换到index为0的数据库:select 0 切换到index为4的数据库:select 4 | 命令 | 描述 | |:--------------------------------------------|:-----------------------------------------------------| | KEYS \* scan 0 match \* count 100 | 查看当前数据库里的所有key | | KEY a\* | 查看a开头的key | | EXISTS key_name \[key_name2 key_name3 ...\] | 查看指定key是否存在(存在返回1,不存在返回0。若查看多个key,则返回对应的存在数量) | | DBSIZE | 查看当前数据库key的数量 | | TYPE key_name | 查看key的值类型 | | DEL key_name \[key_name2 key_name3 ...\] | 删除指定key(返回成功删除数) | | FLUSHDB | 删除当前数据库的所有key(清空当前数据库) | | FLUSHALL | 删除所有数据库中的key(清空所有数据库) | | RENAME old_key_name new_key_name | 对key重命名 | | EXPIRE key_name second_num | 指定key过期时间,单位是秒,过期后自动删除 | | TTL key_name | 返回key过期时间(返回剩余时间(秒)。若返回-1,说明这个key永不过期;返回-2,说明key不存在) | | MOVE key_name db_index | 将key移动到指定数据库(返回1,移动成功;返回0,移动失败) | ## 字符串(String) | 命令 | 描述 | |:--------------------------------------------|:-----------------------------------------------------------------------------------------------| | SET key value | 设置键key的值为value | | SETNX key value | 只有在键key不存在的情况下,将key的值设置为value | | MSET key value \[key2 value2 ...\] | 同时为多个键设置值 | | MSETNX key value \[key2 value2 ...\] | 当所有给定的key都不存在时才同时为多个键设置值 只要有一个key已经存在,那么所有值都不会被继续设置 | | SETEX key seconds value | 将键key的值设置为value,并且超时时间为seconds秒 | | PSETEX key milliseconds value | 将键key的值设置为value,并且超时时间为milliseconds毫秒 | | GET key | 返回键key的值 | | MGET key \[key2 ...\] | 返回给定的一个或多个键的值 | | GETSET key value | 将键key的值为value,并返回设置前的旧值。若没有旧值则返回nil | | APPEND key value | 如果键key存在并且值是一个字符串,则把value追加到现有值的末尾 如果key不存在,则将key的值设置为value 返回追加value之后该value的长度 | | SETRANGE key offset value | 从偏移量offset开始用value字符串覆盖键key存储的原字符串。offset从0开始 返回修改后新的value字符串的长度 | | GETRANGE key start end SUBSTR key start end | 返回键key存储的字符串的从start到end之间(包括start和end)的部分 | | INCR/DECR key | 将键key存储的数字值value加一/减一 若key不存在则值先初始化为0再加一/减一 若key存储的值不能被解释为数字,则返回错误 | | INCRBY/DECRBY key increment/decrement | 将键key存储的数字值value加上/减去⼀个increment/decrement的量 若key不存在则值先初始化为0再加/减 若key存储的值不能被解释为数字,则返回错误 | | INCRBYFLOAT key increment | 将键key存储的浮点数值value加上⼀个increment的增量 若key不存在则值先初始化为0再执⾏加上增量的操作 若key存储的值或increment不能被解释为浮点数值,则返回错误 | | STRLEN key | 获取键为key的值的字符串⻓度 | ## 列表(List) | 命令 | 描述 | |:---------------------------------------|:--------------------------------------------------------------------------------------------| | LPUSH key element \[element2 ...\] | 将一个或多个元素添加到列表key的表头(左侧),多个值则从左到右依次插入表头 如果列表key不存在,则创建一个然后执行LPUSH插入操作 如果列表key存在但不是列表类型,则返回错误 | | LPUSHX key element \[element2 ...\] | 当且仅当key存在并且是一个列表的时候,才执行LPUSH操作 | | RPUSH key element \[element2 ...\] | 将一个或多个元素添加到列表key的表尾(右侧),多个值则从左到右依次插入表尾 如果列表key不存在,则创建一个然后执行RPUSH插入操作 如果列表key存在但不是列表类型,则返回错误 | | RPUSHX key element \[element2 ...\] | 当且仅当key存在并且是一个列表的时候,才执行RPUSH操作 | | LPOP key \[count ...\] | 将一个或count个元素从列表头方向移除并将其返回 如果列表key不存在,则返回nil | | RPOP key \[count ...\] | 将一个或count个元素从列表尾方向移除并将其返回 如果列表key不存在,则返回nil | | RPOPLPUSH source destination | 在一个原子时间内,将source列表的尾部元素弹出,并插入到destination列表的头部,返回该元素 如果列表key不存在,则返回nil | | BLPOP key \[key ...\] timeout | 列表阻塞式(Blocking)弹出。是LPOP的阻塞版本 当列表中没有任何元素时阻塞,直到超时或发现新的可弹出元素为 | | BRPOP key \[key ...\] timeout | 列表阻塞式(Blocking)弹出。是RPOP的阻塞版本 当列表中没有任何元素时阻塞,直到超时或发现新的可弹出元素为 | | BRPOPLPUSH source destination timeout | 是RPOPLPUSH的阻塞版本 当列表source中没有任何元素时阻塞,直到超时或发现新的可弹出元素为止 | | LLEN key | 返回列表key的长度;如果key不存在则返回0;如果key不是列表类型则返回错误 | | LINDEX key index | 返回列表key中索引为index的元素 | | LINSERT key before/after pivot element | 将元素element插入到列表key中,位于pivot之前(before)或者之后(after) | | LSET key index element | 将列表key中索引为index的元素设置为element | | LREM key count element | 移除列表key中与element相等的count个元素,返回被移除的元素的数量 | | LTRIM key start stop | 只保留列表key中索引为start和stop之间的元素(包括start和stop) | | LRANGE key start stop | 返回列表key中,位于start和stop之间的元素(包括start和stop) | ## 哈希(Hash) | 命令 | 描述 | |:---------------------------------------------------|:------------------------------------------| | HSET key field value \[field value ...\] | 将哈希表key中的域field的值设置为value | | HMSET key field value \[field value ...\] | 设置多个key-value对(功能与HSET相同,已过时) | | HSETNX key field value | 当且仅当field不存在的时候,将哈希表key中的域field的值设置为value | | HINCRBY key field increment | 将哈希表key中field的值加上增量increment | | HINCRBYFLOAT key field increment | 将哈希表key中field的值加上浮点数增量increment | | HDEL key field \[field ...\] | 删除哈希表key中的一个或多个指定域field | | HSTRLEN key field | 返回哈希表key中,给定域field相关联的值的字符串长度 | | HLEN key | 返回哈希表key中域的数量 | | HKEYS key | 返回哈希表key中的所有域 | | HVALS key | 返回哈希表key中所有域的值 | | HGETALL key | 返回哈希表key中所有的域和值 | | HEXISTS key field | 判断给定域field是否存在于哈希表key中 | | HGET key field | 返回哈希表key中给定域field的值 | | HMGET key field \[field ...\] | 返回哈希表key中⼀个或多个给定域field的值 | | HSCAN key cursor \[MATCH pattern\] \[COUNT count\] | 增量迭代,是⼀个基于游标的迭代器。类似的命令还有SCAN、SSCAN、ZSCAN | ## 集合(Set) | 命令 | 描述 | |:------------------------------------------------------------|:---------------------------------------------------------------------------------------------| | SADD key member \[member ...\] | 将一个或多个元素加入到集合key中。已存在于集合中的元素将被忽略 | | SREM key member \[member ...\] | 将一个或多个元素从集合key中移除。不存在的member元素将被忽略 | | SPOP key \[count\] | 移除并返回集合key中的一个或count个随机元素 | | SRANDMEMBER key \[count\] | 和SPOP类似,区别在于SRANDMEMBER只返回不移除 | | SMOVE source destination member | 将member元素从source集合移动到destination集合。(原子性操作) | | SISMEMBER key member | 判断MEMBER是否是集合key的成员,是返回1,不是或key不存在返回0 | | SCARD key | 返回集合key的基数(集合中元素的数量) | | SMEMBERS key | 返回集合key中的所有成员 | | SCAN cursor \[MATCH pattern\] \[COUNT count\] \[TYPE type\] | 增量迭代,是一个基于游标的迭代器。类似的命令还有HSCAN、SSCAN、ZSCAN | | SINTER key \[key ...\] | 返回一个集合的全部成员,多个集合则返回交集 | | SINTERSTORE destination key \[key ...\] | 类似SINTER,区别是SINTERSTORE会保存结果集到destination集合中,而不是单纯返回 若destination存在则将其覆盖,destination可以是key本身 | | SUNION key \[key ...\] | 返回一个集合的全部成员,多个集合则返回并集 | | SUNIONSTORE destination key \[key ...\] | 类似SUNION,区别是SUNIONSTORE会保存结果集到destination集合中,而不是单纯返回 若destination存在则将其覆盖,destination可以是key本身 | | SDIFF key \[key ...\] | 返回一个集合的全部成员,多个集合则返回差集 | | SDIFFSTORE destination key \[key ...\] | 类似SDIFF,区别是SDIFFSTORE会保存结果集到destination集合中,而不是单纯返回 若destination存在则将其覆盖,destination可以是key本身 | ## 有序集合(ZSet) | 命令 | 描述 | |:--------------------------------------------------------------------------------------|:-------------------------------------------| | ZADD key \[NX/XX\] \[GT/LT\] \[CH\] \[INCR\] score member \[score member ...\] | 将一个或多个member元素及其分数score加入到有序集合key中 | | ZINCRBY key increment member | 为有序集合key的成员member的分数值score加上一个增量increment | | ZREM key member \[member ...\] | 将一个或多个成员从集合key中移除。不存在的member成员将被忽略 | | ZCARD key | 返回有序集合key的基数(集合中成员的数量) | | ZSCORE key member | 返回有序集合key中的成员member的分数值(score) | | ZCOUNT key min max | 返回有序集合key中,分数值score在min和max之间(包括)的成员的数量 | | ZRANK key member | 返回有序集合key中成员member的排名。(按照score从小到大排列) | | ZREVRANK key member | 返回有序集合key中成员member的排名。(按照score从大到小排列) | | ZRANGE key start stop \[BYSCORE/BYLEX\] \[REV\] \[LIMIT offset count\] \[WITHSCORES\] | 返回有序集合key中指定区间内的成员。(从小到大排列) | | ZREVRANGE key start stop \[WITHSCORES\] | 返回有序集合key中指定区间内的成员。(从大到小排列) | | ZRANGEBYSCORE key min max \[WITHSCORES\] \[LIMIT offset count\] | 返回有序集合key中所有score值在指定区间内的成员。(从小到大排列) | | ZREVRANGEBYSCORE key min max \[WITHSCORES\] \[LIMIT offset count\] | 返回有序集合key中所有score值在指定区间内的成员。(从大到小排列) | | ZREMRANGEBYRANK key min max | 移除有序集合key中指定排名区间内的所有member (按照score从小到大排列) | | ZREMRANGEBYSCORE key min max | 移除有序集合key中指定分数区间内的所有member (按照score从小到大排列) | | ZREMRANGEBYLEX key min max | 移除有序集合key中指定字典序区间内的所有member (按照字典序从小到大排列) | | ZRANGEBYLEX key min max \[LIMIT offset count\] | 返回有序集合key中所有字典序在指定区间内的成员。(从大到小排列) | | ZLEXCOUNT key min max | 返回有序集合key中指定字典序区间内的所有member的数量 | | ZUNIONSTORE destination numkeys key \[key ...\] | 返回一个或多个有序集合的并集,并存储到destination中 | | ZINTERSTORE destination numkeys key \[key ...\] | 返回一个或多个有序集合的交集,并存储到destination中 | | ZSCAN cursor \[MATCH pattern\] \[COUNT count\] \[TYPE type\] | 增量迭代,是一个基于游标的迭代器。类似的命令还有HSCAN、SSCAN、SCAN | ## 流(Stream) | 命令 | 描述 | |:-------------------------------------------------------------------------------------------------------------------|:----------------------------------------| | XADD key \[NOMKSTREAM\] \[MAXLEN\\MINID \[=\~\] threshold \[LIMIT count\]\] \*\\id field value \[field value ...\] | 向流追加一个新的消息,如果key不存在则创建 | | XREAD \[COUNT count\] \[BLOCK milliseconds\] streams key \[key ...\] id \[id ...\] | 读取和返回流key中比id大的消息,若没有则阻塞至消息可用 | | XLEN key | 返回流key中消息的数量 | | XRANGE key start end \[COUNT count\] | 返回流key中,id位于start和end之间的消息(包括start和end) | | XACK key group id \[id ...\] | 返回流key中被消费者组group成功接收的消息数量 | | XCLAIM key group consumer min-idle-time id \[id ...\] | 返回流key的信息 | | XDEL key id \[id ...\] | 从流key中移除消息并返回移除消息的数量 | | XGROUP CREATE key groupname id/$ \[MKSTREAM\] \[ENTRIESREAD entries_read\] | 创建一个消费者组 | | XGROUP CREATECONSUMER key groupname consumername | 在消费者组groupname中创建一个消费者consumername | | XGROUP DELCONSUMER key groupname consumername | 在消费者组groupname中删除一个消费者consumername | | XGROUP DESTROY key groupname | 删除一个消费者组groupname | | XGROUP SETID key groupname id/$ \[ENTRIESREAD entries_read\] | 设置一个消费者组groupname的最后交付id | | XINFO CONSUMERS key groupname | 返回流消费者组groupname中的消费者列表 | | XINFO GROUPS key | 返回流key的消费者组列表 | | XINFO STREAM key \[FULL \[COUNT count\]\] | 返回流key的信息 | | XTRIM key MAXLEN/MINID \[=/\~\] threshold \[LIMIT count\] | 从流的开头删除消息 | ## 地理空间(Geospatial) | 命令 | 描述 | |:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------------------------------------------------------------------------------| | GEOADD key \[NX\\XX\] \[CH\] longitude latitude member \[longitude latitude member ...\] | 添加一个或者多个成员到地理空间中 | | GEODIST key member1 member2 \[M\\KM\\FT\\MI\] | 返回两个成员的距离 | | GEOHASH key member \[member ...\] | 以哈希字符串的形式返回成员的地理信息 | | GEOPOS key member \[member ...\] | 返回一个或多个成员的位置经纬度信息 | | GEORADIUS key longitude latitude radius M\\KM\\FT\\MI | 查询以位置信息(longitude,latitude)为中心,半径为radius范围内的成员,并返回 | | GEORADIUSBYMEMBER key member radius M\\KM\\FT\\MI | 查询以位置信息member为中心,半径为radius范围内的成员,并返回 | | GEOSEARCH key FROMMEMBER member\\FROMLONLAT longitude latitude BYRADIUS radius M\\KM\\FT\\MI\\BYBOX width height M\\KM\\FT\\MI \[ASC\\DESC\] \[COUNT count \[ANY\]\] \[WITHCOORD\] \[WITHDIST\] \[WITHHASH\] | 指定范围内搜索member并返回。可以按成员(FROMMEMBER),或按经纬度(FROMLONLAT),范围可以是圆形( BYRADIUS)或矩形(BYBOX) | | GEOSEARCHSTORE destination source FROMMEMBER member\\FROMLONLAT longitude latitude BYRADIUS radius M\\KM\\FT\\MI\\BYBOX width height M\\KM\\FT\\MI \[ASC\\DESC\] \[COUNT count \[ANY\]\] \[STOREDIST\] | 与GEOSEARCH相同,指定范围内搜索,并存储结果到destination | ## 位图(Bitmap) | 命令 | 描述 | |:-----------------------------------------------|:-----------------------------------------------------------------| | SETBIT key offset value | 设置或者清除偏移量为offset的位 | | GETBIT key offset | 读取偏移量为offset的位的值 | | BITOP operation destkey key \[key ...\] | 对一个或者多个key进行位逻辑运算,并将结果存储在destkey中 operation 可以为AND\\OR\\XOR\\NOT | | BITPOS key bit \[start \[end \[BYTE\\BIT\]\]\] | 返回第一个bit位(0或者1)的位置 | | BITCOUNT key \[start \[end \[BYTE\\BIT\]\]\] | 返回从start到end为止的所有设置位(bit为1的位)的数量 | ## 位域(Bitfield) | 命令 | 描述 | |:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:---------------------------------------| | BITFIELD key \[GET encoding offset \\ \[OVERFLOW WRAP\\SAT\\FAIL\] \ \[GET encoding offset \\ \[OVERFLOW WRAP\\SAT\\FAIL\] \ ...\]\] | 将一个String字符串类型当做一个bit数组,执行任意位域整数运算 | | BITFIELD_RO key \[GET encoding offset \[GET encoding offset ...\]\] | 将一个String字符串类型当做一个bit数组,执行任意位域整数运算(只读) | ## HyperLogLog | 命令 | 描述 | |:--------------------------------------------|:-------------------------------------| | PFADD key \[element \[element ...\]\] | 添加一个或者多个元素到HyperLogLog中。若key不存在则创建一个 | | PFCOUNT key \[key ...\] | 返回一个key的近似的基数 | | PFMERGE destkey sourcekey \[sourcekey ...\] | 将一个或多个sourcekey合并到destkey | | PFDEBUG subcommand key | 用来调试HyperLogLog值的一个内部命令 |

相关推荐
谁家有个大人38 分钟前
MYSQL中对行与列的操作
数据库·mysql
0000ysl1 小时前
数据库基础-函数&约束
数据库
JavaPub-rodert1 小时前
Etcd用的是Raft算法
数据库·github·etcd·raft
编程乐趣1 小时前
FlexLabs.Upsert:EF Core插件推荐,支持多数据库的Upsert功能
数据库
dogplays2 小时前
dbeaver无法连接Oracle报错:ORA-17800、ORA-12514
数据库·oracle
Acrelhuang2 小时前
8.3MW屋顶光伏+光储协同:上海汽车变速器低碳工厂的能源革命-安科瑞黄安南
大数据·数据库·人工智能·物联网·数据库开发
崖山数据库系统YashanDB3 小时前
YashanDB json语法
数据库
陈三一3 小时前
关于多数据源下Spring声明式事务管理失效问题的分析与解决
数据库·spring
我有医保我先冲3 小时前
SQL复杂查询与性能优化全攻略
数据库·sql·性能优化
烧瓶里的西瓜皮3 小时前
Go语言从零构建SQL数据库引擎(2)
数据库·sql·golang