redis知识点

Redis缓存失效机制

EXPIRE key 30  设置失效时间30
两种情况:1延迟失效机制,2主动失效机制
1:延迟失效机制

当客户端请求操作某个key的时候,Redis会对客户端请求操作的key进行有效期检查,如果key过期才进行相应的处理,延迟失效机制也叫消极失效机制。

缓存失效的主动权在Master机器上面,slave机器没有权限将key失效。
如果当前是Master机器,且key过期,则master会做两件重要的事情:1)将删除命令写入AOF文件。2)通知Slave当前key失效,可以删除了。

master从本地的字典中将key对于的值删除。但是key还存在

2:主动失效机制

Redis是单线程的
主动失效机制也叫积极失效机制,即服务端定时的去检查失效的缓存,如果失效则进行相应的操作。

Redis

命令

1 set key value
2 get key 如果不存在,返回空(nil)
3 clear 清除屏幕
4 help+空格+命令 帮助
在这里插入图片描述
5 help+@+group 查看群组
6 quit或者exit 退出
7 del key 删除数据
8 exists key 是否存在key
9 type key 返回数据类型

应用场景:

秒杀,在线人数,购票,。。。。
集群,Session管理,Token管理

常见数据类型(5种)

string,hash,list,set,sorted_set(zset)
对应java
String,HashMap,LinkedList,HashSet,TreeSet

string用法(最大存储512M)

set key value
get key
del key
mset k1 v1 k2 v2 k3 v3 m代表multiple一次性设值多个
mget k1 k3 一次性取多个
strlen key 获取字符长度
append key value 追加字符串,没有则新建
set key value(可以为整数字符串,小数字符串)
incr key字符串为数字+1
decr key字符串为数字-1
incrby key value 用给的value相加
decrby key value 用给的value相减
incrbyfloat key value 如果value本身为小数,则加这个小数
可以用于控制数据库主键生成策略最大值为java中Long类型最大值
setex key seconds(秒) value1 value2 value1过期时间,value2随便设置
psetex key milliseconds(毫秒)value1 value2 value1过期时间,value2随便设置

hash用法

hset key filed value
hget key filed
hgetall key
hdel key filed[filed2]
hmset key filed1 value1 filed2 value2 …
hmget key filed1 filed2…
hlen key 获得filed的数量
hexists key filed 是否存在filed
hkeys key 查询所有键
hvals key 查询所有值
hincrby key filed value 增加数值型的值
hincrbyfloat key filed value
hsetnx key filed value 如果hash中有该filed 不修改,没有则添加filed并且修改
每个用户的购物车(买家)
库存(卖家)

list用法(双向链表)

lpush key v1[v2…] 左边添加
rpush key v1[v2…] 右边添加
lrange key start top 查询list 0(第一个) -1(倒数第一个) 查询所有
lindex key index 获取从左边数第index个数据
rindex key index 获取从右边数第index个数据
llen key 查询长度
lpop key 删除左边第一个并打印
rpop key 删除右边第一个并打印
blpop key[key2…] timout 在多个list中等待,任意一个list有值添加,该队列就拿数据
brpop key[key2…] timout
lrem key count(删除数量) value删除的值
点赞顺序,关注列表,粉丝列表,操作日志

set用法(与hash存储结构相同,但是只存键)

sadd key v1[v2…] 添加
smembers key 查询数据
srem key v1[v2…]删除
scard key 查询数据数量
sismember key v1 查询是否存在
srandmember key count 随机返回count个数据
spop key count 删除指定个数的值
热点歌单,随机播放,网站访问数据统计,黑白名单
sinter key1 key2 交集
sunion key1 key2 并集
sdiff key1 key2 差集
sinterstore newkey key1 key2 求交集并存到newkey
sunionstore newkey key1 key2 求并集并存到newkey
sdiffstore newkey key1 key2 求差集并存到newkey
smove sourcekey newkey member 移动元素

sorted_set(zset)用法

zadd key score member 根据score(成绩)排序
zrange key(score) starts start [withscores] top 0 -1 降序查询全部
zrevrange key(score) start top [withscores] 倒序查询
zrem key(score) member[member2…]
zrangebyscore key(score) min max [withscores] {limit}
zrevrangebyscore key(score) min max [withscores] {limit}
zremrangebyrank key(score) start stop
zremrangebyrank key(score) min max
zcard key(score) 数量
zcount key(score) min max 范围数量
zinterstore newkey key1[key2…]
zunionstore newkey key1[key2…]
zscore key member score的值获取与修改
zincrby key value member 增加member的值

key的操作

expire key seconds 秒
pexpire key milliseconds 毫秒
expireat key timestamp 时间戳 linux
pexpireat key milliseconds-timestamp linux
ttl key 查询剩下的过期时间 如果为-2 说明该数据为nil , -1 存在
pttl key 查询剩下的过期时间 如果为-2 说明该数据为nil , -1 存在 linux
persist key 时间转换为永久
keys pattern ----- * 任意数量任意字符,?任意符号,[]指定符号
keys u[sr]?aa星号 u开头s或r+任意字符+aa+任意结尾
rename key newkey 会覆盖key
renamenx key newkey 不会覆盖key
sort 排序【很多规则】
help @generic 其他操作

数据库

redis划分为16个数据库0-15每个数据库相互独立
select index 切换数据库(默认0)
每个子数据库存放不同的数据
ping
move key db 移动数据
dbsize 查大小
flushdb 删除当前数据库数据
flushall 删除所有数据库数据

参考:
https://www.sohu.com/a/385946145_120047065
https://www.bilibili.com/video/BV1XV411o7xP?p=33

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值