Redis命令(点赞支持呗!)
2020-08-03 22:09:50 0 举报
AI智能生成
详细记录Redis命令操作!
作者其他创作
大纲/内容
关于Redis连接的命令操作
关于Redis连接,我们需要下载Redis镜像,随后启动Redis容器,进入到容器内部来使用命令登录Redis
进入Redis容器内部
docker exec -it 容器ID/容器标识 bash
登录方式
普通方式登录Redis
redis-cli
查看转码前数据的Redis登录方式
redis-cli --raw
输入密码
auth 密码
退出方式
关闭Redis进程
shutdown
退出Redis
exit
关于Redis常用的数据结构
key-string
一个key对应一个value
最常用,一般用于存储一个值
key-hash
一个key对应一个Map
存储一个对象的数据
key-list
一个key对应一个列表
使用list结构实现栈和队列结构
key-set
一个key对应一个集合
可提供集合中交集、并集、差集的操作
key-zset
一个key对应一个有序集合
用于排行榜、积分存储等操作场景
HyperLogLog
可用于计算近似值
GEO
可用于存储地理位置
BIT
一般存储的也是一个字符串,存储的是一个byte数组
关于key-string类型常用命令操作
存取值
存值
set key value
例如:set name ziph
取值
get key
例如:get name
批量存值
mset key1 value1 key2 value2 ......
例如:mset name ziph age 18
自增自减
自增
自增1
incr key
例如:incr age
自增指定数值
incrby key increment
例如:incrby age 5
自减
自减1
decr key
例如:decr age
自减指定数值
decrby key increment
例如:decrby age 5
设置值
设置值并赋予生命周期
设置值并赋予生命周期(秒)
setex key second value
设置值并赋予生命周期(毫秒)
psetex key mills value
注意:每次向Redis中添加数据时,尽量都设置上生命周期
校验式设置值
设置值并校验当前key是否存在,如果不存在则成功创建此key并设置值,如果key存在则不做任何操作
setnx key value
特殊
在key对应的value后追加内容
append key value
查看value字符串的长度
strlen key
关于key-list类型常用命令操作
存取值
数据结构解释
lpush key value1 value2
比如:lpush name ziph join marry
Redis的list列表中存放了名字(name)她们的名字分别为ziph、join、marry
存值
从左开始存值
lpush key value1 value2 ......
从右开始存值
rpush key value1 value2 ......
校验并从左开始存值
lpushx key value
如果key不存在,则不做任何操作;如果key存在,则成功从左存值
校验并从右开始存值
rpushx key value
如果key不存在,则不做任何操作;如果key存在,则成功从右存值
取值
从左侧弹出数据
lpop key
从右侧弹出数据
rpop key
修改数据
lset key index value
注意:在存储数据时,指定好索引位置,覆盖之前索引位置的数据,index超出整个列表的长度也会失败
获取数据
获取指定索引范围的数据
lrange key start stop
start从0开始;stop输入-1代表是最后一个,也就是可以查看到全部;-2也就是倒数第二个
获取指定索引位置的数据
lindex key index
获取真个列表的长度
llen key
删除列表中的数据
lrem key count value
注意:此命令删除当前列表中的count个value值
count>0从左向右删除,count<0从右侧向左删除值,count=0删除列表中的所有value
count>0从左向右删除,count<0从右侧向左删除值,count=0删除列表中的所有value
保留列表中的数据
ltrim key start stop
注意:保留指定索引范围内的数据,超过整个索引范围会被移除掉
将一个列表中最后一个数据,插入到另外一个列表的头部位置
rpoplpush list1 list2
关于key-hash类型常用命令操作
数据结构解释
注意:在key-hash类型中,key等价于大Key,field等价于是小key
例如:hset student name ziph
在这里存储了一个学生(studnet),学生的名字(name)为ziph
存取值
存值
hset key field value
取值
hget key field
批量操作
hmset key field1 value1 field2 value2 ......
自增
指定数值自增
hincrby key field increment
指定数值自减
increment为负数不就好啦!
设置值
hsetnx key field value
注意:如果key-field不存在,则正常添加;如果存在,则不做任何操作
检查field是否存在
hexists key field
删除key对应的field(可批量删除)
hdel key field1 field2 ......
获取数据
获取当前hash结构中的全部field和value
hgetall key
获取当前hash结构中的全部value
hkeys key
获取当前hash结构中的field的数量
hlen key
关于key-set类型常用命令操作
数据结构解释
在key-set的类型中,key可以有多个member值,而同一个key中值是不可以重复的
比如:sadd score 100 99 90
注意:存储的值不一定是数字,可以是其他字符串等等
存取值
存值
sadd key member1 member2 ......
取值
smembers key
获取数据
获取随机一个数据
spop key count
注意:获取的同时,移除数据,count默认为1,代表弹出数据的数量
交集、并集、差集
获取交集数据
sinter set1 set2 ......
获取并集数据
sunion set1 set2 ......
获取差集数据
sdiff set1 set2 ......
注意:交集、并集、差集并没有弹出数据,也就是并没有移除数据
删除数据
srem key member1 member2 ......
查看当前的set集合中是否包含这个值
sismember key member
关于key-zset类型常用命令操作
数据结构解释
zset也是一个集合,但是这个集合中的key就是一个大Key,但是score必须是数值,member是一个不可重复的值
最后总结,说明zset也就是一个大Key中包含了一个数值标识并与其标识对应的值
最后总结,说明zset也就是一个大Key中包含了一个数值标识并与其标识对应的值
存取值
存值
zadd key score1 member1 score2 member2 ......
注意:score必须是数值,member不允许重复
修改member的score
zincrby key increment member
注意:如果member是存在与key中的,正常添加score;如果member不存在,这个命令就相当于是zadd
删除zset中的成员
zrem key member1 member2 ......
获取数据
查看指定member的score
zscore key member
获取zset中的数据的数量
zcard key
根据score的范围查询member数量
zcount key min max
根据score从小到大排序,获取指定范围内的数据
zrange key start stop [withscores]
注意:withscores如果添加这个参数,那么会返回member对应的score
根据score从大到小排序,获取指定范围内的数据
zrevrange key start stop [withscores]
注意:withscores如果添加这个参数,那么会返回member对应的score
根据分数的返回去获取member(从小到大)
zrangebyscore key min max [withscores] [limit offset count]
注意:withscores代表同时返回score,添加limit,就和MySQL中一样,如果不希望等于min或者max的值被查询出来可以采用 ‘(score’ 相当于 < 但是不等于的方式,最大值和最小值使用+inf和-inf来标识
例如:zrangebyscore age -inf 18;意为在score为age中比18无穷小的数据列举出来
例如:zrangebyscore age 18 +inf;意为在score为age中比18无穷大的数据列举出来
例如:zrangebyscore age 18 30;意为在score为18到30之间的数据列举出来
例如:zrangebyscore age (18 30;意为在score为18到30之间的数据列举出来(不包括18)
根据分数的返回去获取member(从大到小)
zrevrangebyscore key max min [withscores] [limit offset count]
关于Key的常用命令操作
查看Redis中的所有key
keys pattern
注意:pattern可以为*,*代表全部key;xxx*、*xxx或xx*x等等
*为通配符
查看某一个key是否存在
exists key
注意:1代表key存在,0代表不存在
删除key
del key1 key2 ......
设置key的生命周期,单位秒
expire key second
设置key的生命周期,单位毫秒
pexpire key milliseconds
查看key的剩余生存时间
查看key的剩余生存时间,单位秒
ttl key
查看key的剩余生存时间,单位毫秒
pttl key
注意:-2为当前key不存在;-1为当前key没有生存时间;有生存时间则显示生存时间
移除key的生存时间
persist key
注意:1为移除成功;0为key不存在生存时间,key不存在
关于库的常用命令操作
因为Redis默认提供了16个库供我们使用,库分别从下标0到15
选择操作的库
select 0~15
移动key到另一个库
move key 0~15
清空当前所在的数据库数据
flushdb
清空全部数据库数据
flushall
查看当前数据库中有多少个key
dbsize
查看最后一次操作的时间
lastsave
监视器,监视操作redis的一举一动
monitor
关于事务的常用命令操作
开启事务
multi
执行事务
exec
取消事务
discard
监听机制(类似乐观锁机制)
watch
取消监听机制
unwatch
关于持久化的常用命令操作
主进程去做RDB持久化
save
子进程去做RDB持久化
bgsave
混合型持久化清洗数据(AOF、RDB)
bgrewriteaof
0 条评论
下一页