redis

4 篇文章 0 订阅

https://www.cnblogs.com/leeSmall/p/8398401.html

版本号第二位为奇数,为非稳定版本(2.7、2.9、3.1)

第二为偶数,为稳定版本(2.6、2.8、3.0)

a. 数据放内存中是速度快的主要原因

b. C语言实现,与操作系统距离近

c. 使用了单线程架构,预防多线程可能产生的竞争问题

5〉持久化:发生断电或机器故障,数据可能会丢失,持久化到硬盘

6〉主从复制:实现多个相同数据的redis副本

7〉高可用和分布式:哨兵机制实现高可用,保证redis节点故障发现和自动转移
 

3. redis有哪些应用场景

1. 缓存:合理使用缓存加快数据访问速度,降低后端数据源压力

2. 排行榜:按照热度排名,按照发布时间排行,主要用到列表和有序集合

3. 计数器应用:视频网站播放数,网站浏览数,使用redis计数

4. 社交网络:赞、踩、粉丝、下拉刷新

5. 消息队列:发布和订阅

预设阀值:两种方式,默认为10毫秒
1,动态设置6379:> config set slowlog-log-slower-than 10000 //10毫秒10000微秒
使用config set完后,若想将配置持久化保存到redis.conf,要执行config rewrite
2,redis.conf修改:找到slowlog-log-slower-than 10000 ,修改保存即可

获取队列里慢查询的命令:slowlog get 查询返回的结构如下

pipeline是多条命令的组合,为了保证它的原子性

1. redis的简单事务,将一组需要一起执行的命令放到multi和exec两个命令之间,其中multi代表事务开始,exec代表事务结束

一、RDB持久化

RDB持久化把当前进程数据生成快照(.rdb)文件保存到硬盘的过程,有手动触发和自动触发
手动触发有save和bgsave两命令
save命令:阻塞当前Redis,直到RDB持久化过程完成为止,若内存实例比较大会造成长时间阻塞,线上环境不建议用它
bgsave命令:redis进程执行fork操作创建子线程,由子线程完成持久化,阻塞时间很短(微秒级),是save的优化,在执行redis-cli shutdown关闭redis服务时,如果没有开启AOF持久化,自动执行bgsave;

二、AOF持久化

针对RDB不适合实时持久化,redis提供了AOF持久化方式来解决

开启:redis.conf设置:appendonly yes  (默认不开启,为no)

默认文件名:appendfilename "appendonly.aof"   

      流程说明:

    1,所有的写入命令(set hset)会append追加到aof_buf缓冲区中

         2,AOF缓冲区向硬盘做sync同步

         3,随着AOF文件越来越大,需定期对AOF文件rewrite重写,达到压缩

         4,当redis服务重启,可load加载AOF文件进行恢复

AOF配置详解:

appendonly yes     //启用aof持久化方式

# appendfsync always //每收到写命令就立即强制写入磁盘,最慢的,但是保证完全的持久化,不推荐使用

appendfsync everysec //每秒强制写入磁盘一次,性能和持久化方面做了折中,推荐

# appendfsync no    //完全依赖os,性能最好,持久化没保证(操作系统自身的同步)

no-appendfsync-on-rewrite  yes  //正在导出rdb快照的过程中,要不要停止同步aof

auto-aof-rewrite-percentage 100  //aof文件大小比起上次重写时的大小,增长率100%时,重写

auto-aof-rewrite-min-size 64mb   //aof文件,至少超过64M时,重写

如何从AOF恢复?

1. 设置appendonly yes;

2. 将appendonly.aof放到dir参数指定的目录;

3. 启动Redis,Redis会自动加载appendonly.aof文件。

其实整个过程只需要一个哨兵节点来完成,首先使用Raft算法(选举算法)实现选举机制,选出一个哨兵节点来完成转移和通知

概括:

rdb:手动和自动

手动:save 阻塞当前clent端请求 

bgsave 异步 fork一个子进程 处理

自动:配置策略:900 1,300,1 每隔900,300 执行bgsave

aof:先到缓存 再到磁盘

有三种:everySec 每秒(默认) always 一直, no 30s

aof过大怎么办 重写机制

配置策略:大小 百分比 例子:auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb

合并重复命令 减少命令记录 例子:set key1 001 ,  set key1 002, set key1 003。那优化的结果就是将前两条去掉

rdb 恢复数据较快 数据丢失

aof 文件很大 恢复速度慢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值