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] <SET encoding offset value\INCRBY encoding offset increment> [GET encoding offset \ [OVERFLOW WRAP\SAT\FAIL] <SET encoding offset value\INCRBY encoding offset increment> ...]] 将一个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值的一个内部命令
相关推荐
杨江8 分钟前
ThingsBoard安装测试
服务器·数据库
mit6.8249 分钟前
[Redis#3] 通用命令 | 数据类型 | 内部编码 | 单线程 | 快的原因
linux·redis·分布式
mit6.82417 分钟前
[Redis#4] string | 常用命令 | + mysql use:cache | session
数据库·redis·后端·缓存
Beekeeper&&P...1 小时前
map和redis关系
数据库·redis·缓存
一朵忽明忽暗的云1 小时前
【Redis_Day6】Hash类型
redis·hash类型
jianqimingtian1 小时前
如何使用 Matlab 制作 GrabCAD 体素打印切片
数据结构·数据库
真真假假々1 小时前
MySQL和ADSDB
数据库·mysql
秦老师Q1 小时前
MySQL第二章 sql约束与sql数据类型
数据库·sql·mysql
不是二师兄的八戒1 小时前
mysql in查询大数据量业务无法避免情境下优化
数据库·mysql
----云烟----2 小时前
Qt获取文件夹下的文件个数(过滤和不过滤的区别)
数据库·qt