Redis笔记

全局操作

**keys *** :展示全部的键

keys *
*为通配符
keys *b 展示全部b结尾的键
keys a* 展示全部a开头的键

dbsize: 当前库的全部键的数量

dbsize

select 1 : 切换redis库操作

select [1,2,3,4,5...] 括号里面为可选值

flushdb:清除当前redis库里的全部键(尽量不用)

flushdb 当前库为什么就清除当前库

flushall:清除全部redis库的键(尽量不用)

flushall

ttl:查看键的过期时间

ttl [key] 永不过期的键的ttl为-1

type:查看key的数据类型

type [key] 

expire:给一个键设置过期时间

expire [key] [ttl] key为键值、ttl为过期时间

del:删除一个key

del [key] key为键
字符串String操作

set:设置string类型的key-value,若已经存在该key则set覆盖旧值

set key value [ex秒]/[px 毫秒] [nx]/[xx]ex/px : 缓存的有效期 默认为exnx: key不存在时,才会执行操作  (涉及分布式锁)xx: key存在时,也会执行操作,更新旧值 默认

get:获取字符串类型键的值,若没有则返回nil,若获取的键的值不为字符串则返回错误

get [key]

incr:自增,可以直接用,key会自动创建,可以不用先set创建

incrby: 指定步长的自增

incr [key] 自增  每次自增一incrby [key] [step] 自增 step为指定步长可以为负数

decr:自减 与自增相仿

decrby:指定步长自减

decr [key]decr [key] [step]

append:把value追加到key的原值上

append [key] [value] key为键,value为要追加的值。注意这里没有key也可以创建成功,值就为追加的value

getset:把该key的老值获取出来并设置新的值

getset [key] [value] key为键 value为新设的值
列表List操作

lpush: 从list左边(头部)插入元素

lpush [key] [value]

rpop :从list的右边(尾部)删除元素返回元素值

rpop [key]

llen:获取列表中存储的值的个数

llen [key] 获取列表中存储的值的个数

ltrim 截取列表中的值

ltrim [key] [start] [stop] 按索引截取列表中的值

lrange:获取列表中的值

lrange [key] [start] [stop] start为开始的索引 end为结束的索引 

索引如下表

正索引012
列表中的值234
反索引-3-2-1

可知获取全部的值为:

lrange [key] 0 -1

rpoplpush:移除列表最后一个元素,并将该元素添加到另一个列表,返回该元素

(常用于完成日志记录)

rpoplpush [key1] [key2] 这里key1为源列表的key key2为目标列表的key
哈希hash操作

hset 设置hash的值

hmset 设置多个hash的值

hset [key] [field] [value] 把key中的field字段的值设置为value,若有该key、value则覆盖hmset [key] [field1] [value1] [field2] [value2] [field3] [value3] 设置多个hash的值

hget 获取hash中指定key的指定field的值

hmget 获取hash中当前key的多个field的值

hgetall 获取当前key的全部field与值

hget [key] [field] 获取hash中指定key的指定field的值hmget [key] [field1] [field2] [field3] 获取hash中当前key的多个field的值hgetall [key] 获取key中全部field与值

hdel 删除hash的key的field

hdel [key] [field] 删除hash的key的field可以写多个field

hlen 获取hash中的记录数,也就是key中的field数

hlen [key]

hexists 获取当前hash中的key的field是否存在

hexists [key] [field]

hkeys 获取当前key的全部field的值

hkeys [key] 获取当前key的全部field的值

hvals 获取当前key的全部value的值

hkeys [key] 获取当前key的全部value的值

hincrby 将指定key的指定field的值自增指定的数量

hincrby [key] [field] [step] 将指定key的指定field的值自增指定的step数量
集合(set)操作

redis的set是无序集合。集合里不允许有重复的元素

set元素最大可以包含(2的32次方-1)个元素。

场景:存放用户ID,不重复的信息、抽奖、好友关系

sadd: 向set集合指定key中插入元素

sadd [key] [value1] [value2] [value3] ... 向set集合指定key中插入元素

smembers: 返回指定key的集合set中的全部元素

smembers [key]

scard 返回指定集合全部的元素个数

scard [key]

srem 删除指定集合的指定元素

srem [key] [value]

spop 随机删除指定集合的元素

spop [key] [count] 这里count参数为随机弹出指定数量的元素,当count大于集合总数是就是全部弹出

sismember: 查看集合中指定key的元素是否存在

sismember [key] [value] 这里key为键value为指定元素

smove 把源集合中的value删除,并添加到目标集合中

smove [set1] [set2] [value]  这里set1为源集合,set2为指定集合,value为需要移动的元素

sinter: 求出key1,key2 两个集合的交集

sinter key1 key2

sunion: 求出key1,key2两个集合的并集

sunion key1 key2

sdiff:求出 key1 key2之间的差集,顺序不同,结果不同

sdiff key1 key2

下面这张图片就是他们之间的关系,其中并集为全部a和b的元素去除重复的值。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dEx2resb-1631930074017)(C:\Users\快定\OneDrive\桌面\笔记\笔记\image\image-20210917113750198.png)]

有序集合(set)操作

元素不允许重复,每个元素关联一个分值,可以通过它的分值进行排序。如实现手机APP市场的软件排名等需求的实现。

zadd 向有序集合指定key添加元素

zadd [key] [score] [value] 这里score为分值 

zrem 删除有序集合指定key的元素

zrem [key] [value] 

zrange 查询有序集合指定key的元素(从小到大)

zrange [key] [start] [end] [withscorces] 这里strat end和lrange一致,withscorces可以省略有的话就会展示分值,默认没有就不展示分值。zrange为从小到大排序

**zrevrange **查询有序集合指定key的元素(从大到小)

zrevrange [key] [start] [end] [withscorces] 参数于上面一致,这里为从大到小排序

zcard 获取有序集合指定key的元素个数

zcard [key]

zscore 获取有序集合指定key的指定元素的分值

zscore [key] [score]

zcount 获取有序集合指定key的分数之间的元素个数

zcount [key] [min] [max]  这里统计的是min<=score<=max个数

zremrangebyscore 删除指定分数区间的value

zremrangebyscore [key] [min] [max]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值