Redis常⽤命令(超详细整理)
服务器相关命令
ping : 检测连接是否存活
echo: 在命令⾏打印⼀些内容
quit、exit: 退出客户端
shutdown: 退出服务器端
info: 返回redis相关信息
config get dir/* 实时传递接收的请求
showlog: 显⽰慢查询
select n: 切换到数据库n,redis默认有16个数据库(DB 0~DB 15),默认使⽤的第0个
dbsize: 查看当前数据库⼤⼩
move key n: 不同数据库之间数据是不能互通的,move移动键到指定数据库
flushdb: 清空当前数据库中的键值对。
flushall: 清空所有数据库的键值对。
key相关命令
在redis中⽆论什么数据类型,在数据库中都是以key-value形式保存,通过进⾏对Redis-key的操作,来完成对数据库中数据的操作。常⽤命令:
keys * :查看当前数据库中所有的key
dbsize: 键总数
exists key: 检查键是否存在
del key [key …]: 删除键
expire key seconds: 键过期
ttl key: 获取键的有效时长
persist key: 移除键的过期时间
type key: 键的数据结构类型
randomkey: 随机返回数据库中⼀个键
rename key1 key2 : 重命名
renamex key1 key2 : 当key2不存在时,key1重命名
代码⽰例:
五⼤数据类型
Redis是⼀个开源(BSD许可),内存存储的数据结构服务器,可⽤作数据库,⾼速缓存和消息队列代理。其通过提供多种键值数据类型来适应不同场景下的存储需求,⽬前为⽌Redis⽀持的键值数据类型如下:
字符串类型: string
哈希类型: hash
列表类型: list
集合类型: set
有序集合类型: sortedset(zset)
String(字符串)
字符串类型是Redis最基础的数据结构,其它的⼏种数据结构都是在字符串类型基础上构建的,字符串的值可以是:字符串、数字、⼆进制,但其值最⼤不能超过512M。
使⽤场景: 缓存、计数器、对象存储缓存(共享session)、限速
常⽤命令:
set key value: 设置⼀个key的value值
setnx key value: 仅当key不存在时进⾏set
setex key seconds value: set 键值对并设置过期时间
mset key value [key value …]: 设置多个key value
msetnx key1 value1 [key2 value2…]: 批量设置键值对,仅当参数中所有的key都不存在时执⾏,原⼦性操作,⼀起成功,⼀起失败
get key: 返回key的value
mget key [key …] : 批量获取多个key保存的值
exists key [key …]: 查询⼀个key是否存在
decr/incr key: 将指定key的value数值进⾏+1/-1(仅对于数字)
incrby/decrbyB key n: 按指定的步长对数值进⾏加减
incrbyfloat key n: 为数值加上浮点型数值
append key value: 向指定的key的value后追加字符串
strlen key: 返回key的string类型value的长度。
getset key value: 设置⼀个key的value,并获取设置前的值,如果不存在则返回null
setrange key offset value: 设置指定位置的字符
getrange key start end: 获取存储在key上的值的⼀个⼦字符串
代码⽰例:
List(列表)
Redis列表是简单的字符串列表,按照插⼊顺序排序。你可以添加⼀个元素到列表的头部(左边)或者尾部(右边),也可以获取指定范围指定下标的元素等。⼀个列表最多可以包含 2 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。
两个特点:
1.列表中的元素是有序的,可以通过索引下标获取某个元素霍某个某个范围内的元素列表
2.列表中的元素可以是重复的
使⽤场景: 消息队列、栈、⽂章列表等。
常⽤指令:
32
lpush/rpush key value1[value2…]: 从左边/右边向列表中PUSH值(⼀个或者多个)lpushx/rpushx key value: 向已存在的列名中push值(⼀个或者多个),list不存在 lpushx失败linsert key before|after pivot value: 在指定列表元素的前/后 插⼊value 查操作lindex key index: 通过索引获取列表元素lrange key start end: 获取list 起⽌元素 (索引从左往右 递增)llen key: 查看列表长度删除操作lpop/rpop key: 从最左边/最右边移除值 并返回
lrem key count value: count >0:从头部开始搜索 然后删除指定的value ⾄多删除count个 count < 0:从尾部开始搜索… count = 0:删除列表中所有的指定value。ltrim key start end: 通过下标截取指
定范围内的列表rpoplpush source destination: 将列表的尾部(右)最后⼀个值弹出,并返回,然后加到另⼀个列表的头部修改操作lset key index value: 通过索引为元素设值阻塞操作
blpop/brpop key1[key2] timout: 移出并获取列表的第⼀个/最后⼀个元素,如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为⽌。
brpoplpush source destination timeout: 和rpoplpush功能相同,如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为⽌。
代码⽰例:
redis八种数据结构Set(集合)
Redis的Set是string类型的⽆序集合,我们不能通过索引获取元素。集合成员是唯⼀的,这就意味着集合中不能出现重复的数据。Redis中集合是通过哈希表实现的,所以添加,删除,查的复杂度都是O(1)。集合中最⼤的成员数为 2 - 1 (4294967295, 每个集合可存储40多亿个成员)。
应⽤场景: 标签(tag)
常⽤命令:
32
sadd key member1[member2…]: 向集合中⽆序增加⼀个/多个成员
srem key member1[member2…]: 移除集合中⼀个/多个成员
scard key: 获取集合的成员数
smembers key: 返回集合中所有的成员
sismember key member: 查询member元素是否是集合的成员,若存在返回1,不存在返回0
srandmember key [count]: 随机返回集合中count个成员,count缺省值为1
spop key [count]: 随机移除并返回集合中count个成员,count缺省值为1
集合间操作
sinter key1 [key2…]: 返回所有集合的交集
sinterstore destination key1[key2…]: 在SINTER的基础上,存储结果到集合中。覆盖
sunion key1 [key2…]: 返回所有集合的并集
sunionstore destination key1 [key2…]: 在SUNION的基础上,存储结果到及和张。覆盖
sdiff key1[key2…]: 返回所有集合的差集 key1- key2 - …
sdiffstore destination key1[key2…]: 在SDIFF的基础上,将结果保存到集合中。覆盖
smove source destination member: 将source集合的成员member移动到destination集合
sscan key [MATCH pattern] [COUNT count]: 在⼤量数据环境下,使⽤此命令遍历集合中元素,每次遍历部分
代码⽰例:
Hash(哈希)
⼏乎所有的编程语⾔都提供了哈希(hash)结构,Redis中 hash 是⼀个string类型的field和value的映射表value={{field1,value1}, {field2,value2}…},可以将⼀个Hash表作为⼀个对象进⾏存储,表中存放对象的信息。
应⽤场景: ⽤户信息缓存
常⽤命令:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论