redis笔记整理

1 篇文章 0 订阅
1 篇文章 0 订阅

NoSql:not noly sql

泛指非关系型数据库
特点:方便扩展
大数据量高性能
数据类型是多样性的,不需事先设计数据库

NoSql四大分类:

kv键值对 redis
文档型数据库
列存储数据库
图关系数据库

redis:remote dictionary server远程服务字典

定义:c语言编写,支持网络,可基于内存可持久化的日志型,kv数据库
特性:多样的数据类型
持久化
集群
事务
有16个数据库,默认使用第0个

redis的单线程的,但速度还是快的
redis是将所有的数据全部放在内存中,对于内存系统来说,没有上下文切换效率就是最高的

redis是内存中的数据结构存储系统,可以用作数据库,缓存,和详细中间件MQ

标题常见五大数据类型:

string,hashes,lists,sets,sorted sets
string常用命令:set key XXX
flushdb/flushall
keys *
select n(数据库编号)
exists key
move key n
del key
expire key time
ttl
type key
append key “XXX”
incr key
decr key
mset k1 v1 k2 v2…
mget k1 k2 k3…
getset 组合命令

不常用命令:setex(set with expire)设置过期时间
setnx(set if not exists)不存在设置
分布式锁中会常使用
msetng是原子性操作

list(列表)常用命令:lpush,lpop
lrange
lrem
ltrim
rpoplpush组合命令
lset
linsert将某个具体的value插入具体位置
set(集合)常用命令:sadd
scard
srem
smember
sismember
srandmember
smove
sdiff,sinter
hash(哈希)常用命令:hget
hset
hmset
hmget
hgetall
hdel
hlen
hexists
hsetnx
更适合存储对象(相对于string)
zset(有序集合)常用命令:zadd
zrangebyscore
zrem
zcard
zrevrange
zcount
geospatial
hyperloglog
bitmap
redis单条命令是保证原子性的,但事务不保证原子性
redis事务没有隔离级别的概率

开启事务 multi
命令入队
执行事务exec

取消事务discard

会出现两个异常:
编译时异常
运行时异常

监控(watch):
悲观锁:无论做什么都加锁
乐观锁:不会上锁
解锁(unwatch)

jedis
使用java操作redis中间件

redis是内存数据库,如果没有持久化,断电及失

redis持久化
RDB(redis database)
在指定的时间间隔内江内存中的数据及快照写入磁盘,恢复时将快照文件直接读到内存中

rdb保存的文件是dump.rdb文件
在配置文件中的快照中
触发机制
1.save的规制满足的情况下,会自动触发rdb规则
2.执行flushall命令,也会触发rdb规则
3.推出redis,也会产生rdb文件
备份就自动生产一个dump.rdb

恢复rdb文件
查看需要存放的位置config get dir

AOF(Append Only FIle)
aof保存的文件是appendonly.aof文件
以日志的形式来记录每个写操作,将redis执行过的所有指令记录下来
默认关闭 开启 appendonly.aof yes
如果aof文件有错误,redis无法启动
修复文件,需要redis-check-aof工具
相对于数据文件aof远大于rdb,修复速度也慢
aof运行效率比rdb慢,使用默认为rdb

在主从复制中,rdb做备份

发布订阅
是一种消息通信模式
订阅者:subscribe name
发布者:publish name message
使用场景:
1.实时消息系统
2.实时聊天
3.订阅
复杂场景使用专业MQ

主从复制
数据的复制是单向的,只能由主节点到从节点
master以写为主,slave以读为主

主要作用:数据冗余
故障恢复
负载均衡
高可用基石

哨兵模式(自动选举老大)

redis缓存,穿透和雪崩
缓存:用户查询一个数据,redis内存中没有,于是型持久层数据库查询,发现也没有,于是本次查询失败,当用户很多时,都去请求持久层数据库,给数据库造成跟打的压力,出现了缓存穿透

解决方案:
布隆过滤器
缓存空对象

击穿:查询量太大,缓存过期

解决方案:
设置热点数据永不过期
将互斥锁

雪崩:某个时间段,缓存集中过期失效,redis宕机

解决方案
redis高可用
限流降级
数据预热

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值