前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >redis系列基础篇之配置详解

redis系列基础篇之配置详解

作者头像
用户4361942
发布2019-05-24 16:57:44
5000
发布2019-05-24 16:57:44
举报
文章被收录于专栏:java程序员思维java程序员思维

上一篇我们讲解了redis的简介和安装,这里我们讲解一下redis配置。

代码语言:javascript
复制
#是否在后台执行,yes:后台运行;#no:不是后台运行daemonize yes
#redis的进程文件pidfile /var/run/redis.pid
#redis端口号 默认6379 #如果想改变端口修改此参数port 6380
#此参数为设置客户端空闲超过timeout,#服务端会断开连接,#为0则服务端不会主动断开连接,#不能小于0timeout 300
#tcp keepalive参数。如果设置不为0,#就使用配置tcp的SO_KEEPALIVE值,#使用keepalive有两个好处:检测挂掉的对端。#降低中间设备出问题而导致网络看似#连接却已经与对端端口的问题。#在Linux内核中,设置了keepalive,#redis会定时给对端发送ack。#检测到对端关闭需要两倍的设置值。tcp-keepalive 0
#指定了服务端日志的级别。级别包括:#debug(很多信息,方便开发、测试),#verbose(许多有用的信息,#但是没有debug级别信息多)#notice(适当的日志级别,适合生产环境),#warn(只有非常重要的信息)loglevel notice
#指定redis日志文件logfile /var/log/redis.log
#数据库的数量,默认使用的数据库是DB0。#可以通过”SELECT “命令选择一个dbdatabases 16
#设置redis是否需要密码和密码 #用来保证安全requirepass 123
#最大客户端连接数,超过这个值,#redis会给新的连接发送’max number #of clients reached’,并关闭连接maxclients 50000
#最大内存容量maxmemory 2gb
#内存容量超过maxmemory后的处理策略。#volatile-lru:#利用LRU算法移除设置过过期时间的key。#volatile-random:#随机移除设置过过期时间的key。#volatile-ttl:#移除即将过期的key,#根据最近过期时间来删除(辅以TTL)#allkeys-lru:#利用LRU算法移除任何key。#allkeys-random:#随机移除任何key。#noeviction:#不移除任何key,只是返回一个写错误。maxmemory-policy volatile-lru
#lru检测的样本数。#使用lru或者ttl淘汰算法,#从需要淘汰的列表中随机选择sample个key,选出闲置时间最长的key移除。#这里使用的是贪心算法maxmemory-samples 3
#默认redis使用的是rdb方式持久化,#这种方式在许多应用中已经足够用了。#但是redis如果中途宕机,#会导致可能有几分钟的数据丢失,#根据save来策略进行持久化,#Append Only File是另一种持久化方式,#可以提供更好的持久化特性。#Redis会把每次写入的数据在接收后都写入# appendonly.aof 文件,#每次启动时Redis都会先把这个文件的#数据读入内存里,先忽略RDB文件。appendonly yes
#aof持久化策略的配置#no表示不执行fsync,由操作系统#保证数据同步到磁盘,速度最快。#always表示每次写入都执行fsync,#以保证数据同步到磁盘。#everysec表示每秒执行一次fsync,#可能会导致丢失这1s数据。appendfsync no
#在aof重写或者写入rdb文件的时候,#会执行大量IO,#此时对于everysec和#always的aof模式来说,#执行fsync会造成阻塞过长时间,#no-appendfsync-on-rewrite#字段设置为默认设置为no。#如果对延迟要求很高的应用,#这个字段可以设置为yes,#否则还是设置为no,#这样对持久化特性来说这是更安全的选择。#设置为yes表示rewrite期间#对新写操作不fsync,#暂时存在内存中,等rewrite完成后再写入,#默认为no,#建议yes。Linux的默认fsync策略是30秒。#可能丢失30秒数据。no-appendfsync-on-rewrite yes
#slog log是用来记录redis运行#中执行比较慢的命令耗时。#当命令的执行超过了指定时间,#就记录在slow log中slowlog-log-slower-than 10000
#aof自动重写配置。#当目前aof文件大小超过上一次#重写的aof文件大小的百分之多少进行重写#即当aof文件增长到一定大小的时候Redis#能够调用bgrewriteaof#对日志文件进行重写。#当前AOF文件大小是上次日志重写得到#AOF文件大小的二倍(设置为100)时,#自动启动新的日志重写过程。auto-aof-rewrite-percentage 100
#设置允许重写的最小aof文件大小,#避免了达到约定#百分比但尺寸仍然很小的情况还要重写auto-aof-rewrite-min-size 64mb
#数据量小于等于#hash-max-ziplist-entries的用ziplist,#大于hash-max-ziplist-entries用hashhash-max-ziplist-entries 512
#value大小小于等于#hash-max-ziplist-value的用ziplist,#大于hash-max-ziplist-value用hash。hash-max-ziplist-value 64
#慢查询日志长度。当一个新的命令#被写进日志的时候,#最老的那个记录会被删掉。这个长度没有限制。#只要有足够的内存就行。#你可以通过 SLOWLOG RESET 来释放内存。slowlog-max-len 128
#数据量小于等于#list-max-ziplist-entries#用ziplist,#大于list-max-ziplist-entries用list。list-max-ziplist-entries 512
#value大小小于等于#list-max-ziplist-value的用ziplist,#大于list-max-ziplist-value用list。list-max-ziplist-value 64
#数据量小于等于#set-max-intset-entries用iniset,#大于set-max-intset-entries用set。set-max-intset-entries 512
#数据量小于等于#zset-max-ziplist-entries用ziplist,#大于zset-max-ziplist-entries用zset。zset-max-ziplist-entries 128
#value大小小于等于#zset-max-ziplist-value用ziplist,#大于zset-max-ziplist-value用zset。zset-max-ziplist-value 64

#Redis将在每100毫秒时使用1毫秒的#CPU时间来对redis的hash#表进行重新hash,#可以降低内存的使用。#当你的使用场景中,#有非常严格的实时性需要,#不能够接受Redis时不时的对#请求有2毫秒的延迟的话,把这项配置为no。#如果没有这么严格的实时性要求,#可以设置为yes,#以便能够尽可能快的释放内存。activerehashing yes

#对客户端输出缓冲进行限制#可以强迫那些不从服务器#读取数据的客户端断开连接,#用来强制关闭传输缓慢的客户端。#对于normal client,#第一个0表示取消hard limit,#第二个0和第三个0表示取消#soft limit,normal client默认取消限制,#因为如果没有寻问,他们是不会接收数据的。client-output-buffer-limit normal 0 0 0
#对于slave client和MONITER client,#如果client-output-buffer一旦超过256mb,#又或者超过64mb持续60秒,#那么服务器就会立即断开客户端连接。client-output-buffer-limit slave 256mb 64mb 60
#对于pubsub client,如果#client-output-buffer一旦超过32mb,#又或者超过8mb持续60秒,#那么服务器就会立即断开客户端连接。client-output-buffer-limit pubsub 32mb 8mb 60
#redis执行任务的频率为1s除以hz。hz 10
#在aof重写的时候,#如果打开了#aof-rewrite-incremental-fsync开关,#系统会每32MB执行一次fsync。#这对于把文件写入磁盘是有帮助的,#可以避免过大的延迟峰值。aof-rewrite-incremental-fsync yes

我们之前启动过redis服务,先将redis服务kill掉,然后再重启。

启动redis指定配置文件的方法:

redis-server /etc/redis.conf

配置文件中,我们改变了redis端口6380,并且使用了密码

连接客户端需要指定端口号和密码

redis-cli -p 端口号 -h ip地址 -a 密码

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-05-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 java程序员思维 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档