一,创建redis的数据和日志目录:

[root@yjweb data]# mkdir /data/redis6379
[root@yjweb data]# mkdir /data/redis6379/data
[root@yjweb data]# mkdir /data/redis6379/log

说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest

对应的源码可以访问这里获取: https://github.com/liuhongdi/

说明:作者:刘宏缔 邮箱: 371125307@qq.com

二,redis运行环境的linux配置

1,设置系统中每个端口的监听队列的最大的长度

[root@yjweb log]# sysctl -a | grep somaxconn
net.core.somaxconn = 128

我们修改为大于redis中的TCP backlog值

说明:redis中的TCP backlog值默认是511

tcp-backlog 511
[root@yjweb log]# vi /etc/sysctl.conf

增加一行:

net.core.somaxconn = 1024

使配置起作用:

[root@yjweb log]# sysctl -p

说明:

sysctl命令用来显示和配置内核运行时参数
-a:显示所有的配置参数
-p:从/etc/sysctl.conf加载配置

参见:

[root@yjweb log]# man sysctl

2,配置overcommit_memory

说明:内核参数overcommit_memory 

它是 内存分配策略

有三个值可用:0、1、2。

0, 表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。
1, 表示内核允许分配所有的物理内存,而不管当前的内存状态如何。
2, 表示内核允许分配超过所有物理内存和交换空间总和的内存

这里面,2这种策略不够安全,

0有可能发生申请失败的情况

redis建议我们采用1的策略

编辑内核参数配置文件

[root@yjweb log]# vi /etc/sysctl.conf

增加一行:

vm.overcommit_memory=1

使配置起作用:

[root@yjweb log]# sysctl -p

检查是否生效

[root@yjweb log]# sysctl -a | grep overcommit_memory
vm.overcommit_memory = 1

说明;此处注意给redis分配的内存大小

maxmemory的值不要超过物理内存的四分之三,

否则有可能引发系统内存不足

3,关闭Transparent Huge Pages(THP)

[root@localhost ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never

说明:透明大页内存管理会影响数据的访问速度,可以关闭

关闭方法:

[root@yjweb log]# echo never > /sys/kernel/mm/transparent_hugepage/enabled
[root@yjweb log]# cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]

成功了,为了保证开机重启后还能自动写入配置,

参见这一篇:

centos8下启用rc-local服务
地址:https://www.cnblogs.com/architectforest/p/12467474.html

二,修改配置文件redis.conf

[root@yjweb conf]# vi /usr/local/soft/redis5/conf/redis.conf 

内容:

1,指定监听的本地ip

bind 10.51.136.133

说明:如果bind 127.0.0.1   则只能从本机访问。

请确认是否只从本机访问redis,

否则建议设置为可以从网络访问的地址

2,保护模式:

protected-mode yes

说明:

protected-mode 会在没有设置 bind 和 密码时起作用,

建议protected-mode设置为yes

3,指定端口号

port 6379

说明:

如果在同一台机器上运行多个redis实例,各个实例的端口要区分开

4,指定密码:

requirepass demopassword

说明:安全起见,此处应该指定一个有复杂度的密码

5,指定以daemon方式运行

daemonize yes

6,loglevel : 保持值为notice即可:

loglevel notice

说明:

# This can be one of:
# debug (a lot of information, useful for development/testing)
# verbose (many rarely useful info, but not a mess like the debug level)
# notice (moderately verbose, what you want in production probably)
# warning (only very important / critical messages are logged)

7,logfile 指定日志文件路径

logfile "/data/redis6379/log/redis.log"

使用上面创建的路径

8,指定数据文件的路径

dir /data/redis6379/data/

说明:此处的值只能是一个目录

9,使用的最大内存容量

maxmemory 128MB

10,最大并发连接数

maxclients 10000

不建议修改,注意这个值应该在ulimit -n 返回的值以内

ulimit -n 显示的是linux系统里单用户打开文件描述符的最大值

11,slowlog的时长:

# The following time is expressed in microseconds, so 1000000 is equivalent
# to one second. Note that a negative number disables the slow log, while
# a value of zero forces the logging of every command. slowlog-log-slower-than 10000

说明:这个值的单位是微秒,

默认值10000即10毫秒

注意不要设置为0,因为它会记录所有命令

12,slowlog的最大记录数

# There is no limit to this length. Just be aware that it will consume memory.
# You can reclaim memory used by the slow log with SLOWLOG RESET. slowlog-max-len 512

说明:默认值是128,

我们适当加大,这个值也可以从命令行中动态配置

例子:

127.0.0.1:6379> config set slowlog-max-len 1024
OK

说明:如何把动态配置的参数写入到配置文件当中?

127.0.0.1:6379> config rewrite
OK

修改完成后重启:

[root@yjweb conf]# systemctl stop redis
[root@yjweb conf]# systemctl start redis 

四,如何查看redis的慢查询日志?

1,当前的慢查询日志共多少条?

10.51.136.133:6379> slowlog len
(integer) 128

2,显示两条慢查询日志

10.51.136.133:6379> slowlog get 3
1) 1) (integer) 709
2) (integer) 1545732832
3) (integer) 13846
4) 1) "HGETALL"
2) "promotion_goods_detail"

说明:

第一个值:#日志的唯一标识符

第二个值:#命令执行是的UNIX时间戳

第三个值:#命令执行的时长,单位微妙

第四个值:#执行的命令及命令参数

3,清除所有的slowlog

127.0.0.1:6379> slowlog reset

五,查看redis的版本

[root@yjweb ~]$ /usr/local/soft/redis5/bin/redis-server --version
Redis server v=5.0.7 sha=00000000:0 malloc=libc bits=64 build=7abb9ee9ee0ce29b

六,查看centos的版本

[root@yjweb ~]$ cat /etc/redhat-release
CentOS Linux release 8.0.1905 (Core)

centos8上redis5在生产环境的配置的更多相关文章

  1. 分离Webpack开发环境与生产环境的配置

    这是Webpack+React系列配置过程记录的第五篇.其他内容请参考: 第一篇:使用webpack.babel.react.antdesign配置单页面应用开发环境 第二篇:使用react-rout ...

  2. 【Spring】使用@Profile注解实现开发、测试和生产环境的配置和切换,看完这篇我彻底会了!!

    写在前面 在实际的企业开发环境中,往往都会将环境分为:开发环境.测试环境和生产环境,而每个环境基本上都是互相隔离的,也就是说,开发环境.测试环境和生产环境是互不相通的.在以前的开发过程中,如果开发人员 ...

  3. Yarn 生产环境核心配置参数

    目录 Yarn 生产环境核心配置参数 ResourceManager NodeManager Container Yarn 生产环境核心配置参数 ResourceManager 配置调度器 yarn. ...

  4. Spring.profile实现开发、测试和生产环境的配置和切换

    软件开发过程一般涉及“开发 -> 测试 -> 部署上线”多个阶段,每个阶段的环境的配置参数会有不同,如数据源,文件路径等.为避免每次切换环境时都要进行参数配置等繁琐的操作,可以通过spri ...

  5. vue-cli 3.0 axios 跨域请求代理配置及生产环境 baseUrl 配置

    1. 开发环境跨域配置 在 vue.config.js 文件中: module.exports = { runtimeCompiler: true, publicPath: '/', // 设置打包文 ...

  6. IDEA开发、测试、生产环境pom配置及使用

    pom文件 一般放在最下面,project里 <!--开发环境.测试环境.生产环境--> <!--生产环境--> <profiles> <profile> ...

  7. [转]Docker 生产环境之配置容器 - 限制容器资源

    默认情况下,容器没有资源限制,可以使用主机内核调度程序允许的给定资源.Docker 提供了一些方法来控制容器可以使用多少内存.CPU 或块 IO,并设置 docker run 命令的运行时配置标志.本 ...

  8. django+vue+nginx生产环境部署配置

    部署环境: 1. linux redhat 7.1 2.python 3.6.3 3. vue 4. nginx 5. gunicorn 6. supervisord 安装: 一. 基础环境安装 1. ...

  9. elasticsearch7.5.0+kibana-7.5.0+cerebro-0.8.5集群生产环境安装配置及通过elasticsearch-migration工具做新老集群数据迁移

    一.服务器准备 目前有两台128G内存服务器,故准备每台启动两个es实例,再加一台虚机,共五个节点,保证down一台服务器两个节点数据不受影响. 二.系统初始化 参见我上一篇kafka系统初始化:ht ...

随机推荐

  1. python中函数的参数:必传参数(位置参数)、默认值参数、参数组传参、关键字传参

    1.必传参数也叫做位置参数,因为必填,也必须对应位置 2.默认值参数如上图的word 3.参数组参数:传进去的是0个.或多个value的形式,,,和位置参数有点像,只传value值,但是没有限制个数 ...

  2. bernoulli, multinoulli distributions 讲解

    bernoulli, multinoulli distributions 讲解   常用概率分布-Bernoulli 分布 & Multinoulli 分布 转自:迭代自己-19常用概率分布 ...

  3. python字符串和列表小案例

    python 目录 python 一.字符串 1.给定一个字符串,利用切片将字符串反转 2.给定一个字符串,将空格替换为逗号 3.给定一个字符串,大写改为小写 4.str = '' ,li = ['l ...

  4. Linux实战(20):非docker部署ELK

    部署环境: Elasticsearch:7.5.2 Kibana:7.5.2 Logstash:7.5.2 filebeat:7.5.2 redis:最新版 部署方式:rpm+二进制包 使用架构 软件 ...

  5. 属性序列化自定义与字母表排序-JSON框架Jackson精解第3篇

    Jackson是Spring Boot默认的JSON数据处理框架,但是其并不依赖于任何的Spring 库.有的小伙伴以为Jackson只能在Spring框架内使用,其实不是的,没有这种限制.它提供了很 ...

  6. 安装Windows10操作系统 - 初学者系列 - 学习者系列文章

    今天无事,就将安装操作系统的几种方式进行了总结( https://www.cnblogs.com/lzhdim/p/13719725.html ).这篇博文主要是对安装windows10操作系统的过程 ...

  7. 面试题总结:可能是全网最好的MySQL重要知识点

    标题有点标题党的意思,但希望你在看了文章之后不会有这个想法--这篇文章是作者对之前总结的 MySQL 知识点做了完善后的产物,可以用来回顾MySQL基础知识以及备战MySQL常见面试问题. 什么是My ...

  8. Spring Boot 项目打成 war 包部署

    Spring Boot 一个非常方便的功能就是支持内置的 Servlet 容器,一般我们部署 Spring Boot 应用时都是打成一个可执行的 Jar 包进行部署.其实 Spring Boot 也是 ...

  9. myisamchk是用来做什么的?MyISAM Static和MyISAM Dynamic有什么区别?

    myisamchk是用来做什么的? 它用来压缩MyISAM[歌1] 表,这减少了磁盘或内存使用. MyISAM Static和MyISAM Dynamic有什么区别? 在MyISAM Static上的 ...

  10. P2947 Look Up S

    题目描述: 约翰的N(1≤N≤10^5)头奶牛站成一排,奶牛i的身高是Hi(l≤Hi≤1,000,000).现在,每只奶牛都在向右看齐.对于奶牛i,如果奶牛j满足i<j且Hi<Hj,我们可 ...