Redis服务之常用配置(二)
上一篇博客我们聊了下redis的INCLUDE、NETWORK、GENERAL配置段相关配置和说明,回顾请参考:https://www.cnblogs.com/qiuhom-1874/p/13383166.html;今天我们继续来说redis的其他配置段相关配置和说明;
SNAPSHOTTING相关配置
save:该指令用于指定在多少时间内,至少发生了多少写操作,就触发一次快照;配置语法 save <seconds> <changes>;其中save是指令,seconds表示时间单位是秒,changes表示数据发生变化的次数(写操作的次数);
示例:

提示:以上配置表示在900秒以内如果数据至少发生了一次变化就做一次快照,或者在300秒内数据发生了至少10次变化,就做一次快照或者在60秒内,数据发生了至少10000次变化就做一次快照;save可以多次配置,他们之间是或的关系,只要满足其中一条就会触发快照操作;
stop-writes-on-bgsave-error:该指令用于指定是否开启当做快照时发生错误停止服务器写入数据;默认是yes,表示开启当做快照时发生错误而停止redis服务器的写入;在生产环境中不建议开启,因为这个选项一旦开启,当作快照时如果发生错误,会导致整个redis服务器写操作不可用;
rdbcompression:该指令用于指定是否对快照文件rdb做压缩,默认是yes,开启压缩;
rdbchecksum:该指令用于指定是否对RDB文件做校验,默认是yes,开启校验rdb文件功能;
dbfilename:该指令用于指定快照文件的名称,默认是dump.rdb
dir:该指令用于指定rdb存储目录路径;默认编译安装,如果是用systemctl启动,默认是/;如果是用redis-server +配置文件路径来启动,默认就在当前执行命令的路径下;这里需要注意所在路径的权限要对应启动用户有写入权限,否则快照时会发生错误,提示没有权限在指定路径下创建快照文件;如果是yum安装默认是在/var/lib/redis/目录下;
示例:

提示:以上配置表示配置redis如果在3秒钟内至少有1次数就变化就触发做一次快照;当在做快照时发生错误,停止redis的写操作;启用对快照文件rdb做压缩和校验;快照文件存储到/var/lib/redis目录下,名为dump_6379.rdb;
验证:重启redis服务,用redis-cli连接,在其命令行插入数据,看看是否会在对应目录下产生rdb文件?

提示:在使用redis用户启动redis时,是能够在对应目录下生成快照文件,说明我们配置的快照策略生效了;
验证:重启redis,看看数据是否还在?

提示:可以看到我们重启了redis后,之前写入的数据都还在,说明redis在启动重启时会把rdb中的文件数据加载到内存;
验证:修改/var/lib/redis/目录的属主和属组为root,然后往redis里写数据,看看会发生什么?

提示:修改了/var/lib/redis/目录的属主/组为root后,再次连接redis读取数据是可以正常读取,但是写入数据报错,它告诉我们存储快照时发生错误;
查看日志

提示:从上面的日中可以了解到redis做快照存储时,它会启动一个线程去存储快照,即便发生错误它也会每隔几秒去重复的执行存储快照的操作;其实上面的错误的原因是我们开启了stop-writes-on-bgsave-error这个选项,所以为了避免这种错误发生,我们可以把stop-writes-on-bgsave-error这个选项设置为no,但是这样设置以后我们还需要,通过监控来监控redis的日志,及时发现问题避免丢失数据;
SECURITY相关配置
requirepass:该指令用于指定连接redis服务端所需的密码;默认情况没有启用,生产中一定要设置密码;
示例:设置连接redis密码

提示:以上配置表示给redis设置密码为admin123.com;
验证:重启redis,不使用密码是否能够连接,操作redis?

提示:重启redis后,可以连接到redis,但是没法操作redis;
提供密码

提示:连接redis时可以使用-a来指定密码;也可以连接到redis后使用auth 命令来指定密码;
rename-command:该命令用于重写那些高危命令,相当于给对应命令重命名;
示例:重写flushall 为aaaa

提示:以上配置表示把flushall替换成aaaa;这意味着在客户端执行FLUSHALL就不生效了;
验证:重启redis,使用flushall看看会发生什么?

提示:可以看到使用flushall命令就会报错命令没找到;使用aaaa就相当于使用flushall,这样做的好处就是规避客户端使用高危命令,造成不要的数据丢失;
LIMITS相关配置
maxclients:该指令用于指定最大客户端连接数;默认是10000;
maxmemory:该指令用于指定最大内存,单位是字节,这个选项一般不建议配置过大,过大极易触发oom;
maxmemory-policy:该指令用于指定当最大内满了以后,该怎么清除里面的数据;volatile-lru表示对有过期时长的数据进行LRU算法淘汰;allkeys-lru表示对所有键基于LRU算法淘汰;volatile-random对有过期时长的键进行随机淘汰;allkeys-random对所有键进行随机淘汰;noeviction不淘汰任何以存在的数据,如果有新数据来了,就错误提示;默认是noevicton
maxmemory-samples:该指令用于指定一次采样key数量,默认是5个;基于采样的5个键里做LRU;
Redis服务之常用配置(二)的更多相关文章
- Redis服务之常用配置(三)
上一篇博客我们聊了下redis的rdb持久化.安全连接.资源限制相关配置;回顾请参考:https://www.cnblogs.com/qiuhom-1874/p/13394411.html;今天我们来 ...
- Redis服务之常用配置(一)
上一篇博客聊了下redis的简介以及redis的yum安装和源码编译安装需要注意到问题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/13378138.html ...
- SpringMVC常用配置(二),最简洁的配置实现文件上传
Spring.SpringMVC持续介绍中,基础配置前面已经介绍了很多,如果小伙伴们还不熟悉可以参考这几篇文章: 1.Spring基础配置 2.Spring常用配置 3.Spring常用配置(二) 4 ...
- 【centos6】安装redis + phpredis 以及 常用配置参数
1.redis-server和redis-cli安装文章:http://www.cnblogs.com/skyessay/p/6429988.html 1.前置条件:查看是否安装gcc,命令:gcc ...
- Redis安装及常用配置
Redis安装说明 大多数企业都是基于Linux服务器来部署项目,而且Redis官方也没有提供Windows版本的安装包.因此课程中我们会基于Linux系统来安装Redis. 此处选择的Linux版本 ...
- redis配置文件中常用配置详解
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/suprezheng/article/de ...
- Spring常用配置(二)
OK,上篇博客我们介绍了Spring中一些常见的配置,上篇博客中介绍到的都是非常常见的注解,但是在Spring框架中,常见的注解除了上篇博客提到的之外,还有许多其他的注解,只不过这些注解相对于上文提到 ...
- redis主从+哨兵 安装配置二
实验环境: 192.168.2.201 centos7 master sentinel 192.168.2.202 centos7 slave sentinel 192.168.2.203 cen ...
- Redis服务之常用数据类型
上一篇博客我们聊了下redis的主从复制.aof持久化.集群.慢日志相关配置指令的说明,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/13416534.html ...
随机推荐
- 阿里云centos7安装jdk8
1.准备Linux版本的jdk8直接上Oracle公司的官网下载就好了 http://www.oracle.com/technetwork/java/javase/downloads/jdk8- ...
- python之类与对象(一)
1.改变对象的字符串显示,要改变一个实例的字符串表示,可重新定义它的 str () 和 repr () 方法 class Pair: def __init__(self, x, y): self.x ...
- python基础--自定义模块、import、from......import......
自定义模块.import.from......import...... 1)模块的定义和分类 1.模块是什么? 我们知道一个函数封装了一个功能,软件可能是有多个函数组成的.我们说一个函数就是一个功能, ...
- 【react】实现动态表单中嵌套动态表单
要实现一个功能动态表单中嵌套动态表单如下: 仔细看看antd的文档其实不难 具体步骤如下 1.建立一个 名为 ConcatRegion的组件(动态表单A)代码如下 export function Co ...
- java语言进阶(六)_线程_同步
第一章 多线程 想要设计一个程序,边打游戏边听歌,怎么设计? 要解决上述问题,需要使用多进程或者多线程来解决. 1.1 并发与并行 并发:指两个或多个事件在同一个时间段内发生. 并行:指两个或多个事件 ...
- https http 混合访问_https 页面中引入 http 资源的解决方式
解决android 5.0 webview不能加载http与https混合内容的问题 在使用WebView加载https资源文件时,如果认证证书不被Android认可,那么会出现无法成功加载对应资源问 ...
- 01.RabbitMQ简单使用
官网地址:https://www.rabbitmq.com/getstarted.html RabbitMQ 优点: 数据处理异步执行: 应用之间解耦: 流量削峰 1.docker 安装 Rabbit ...
- Apache Hudi重磅特性解读之全局索引
1. 摘要 Hudi表允许多种类型操作,包括非常常用的upsert,当然为支持upsert,Hudi依赖索引机制来定位记录在哪些文件中. 当前,Hudi支持分区和非分区的数据集.分区数据集是将一组文件 ...
- day06 可变不可变类型
1.可变不可变类型 可变类型 定义:值改变,id不变,改的是原值 不可变类型 定义:值改变,id也变了,证明是产生了新的值没有改变原值 验证 x = 10 print(id(x)) x = 11 pr ...
- 机器学习实战基础(十二):sklearn中的数据预处理和特征工程(五) 数据预处理 Preprocessing & Impute 之 处理分类特征:处理连续性特征 二值化与分段
处理连续性特征 二值化与分段 sklearn.preprocessing.Binarizer根据阈值将数据二值化(将特征值设置为0或1),用于处理连续型变量.大于阈值的值映射为1,而小于或等于阈值的值 ...