目录
1.Redis配置文件
1.1.Units
- 配置大小单位,开头定义了一些基本的度量单位,只支持Bytest,不支持bit大小写不敏感。
1.2.INCLUDES
- 包含其他公共的配置文件部分。
1.3.网络相关配置
-
bind 127.0.0.1 -::1
默认情况下bind=127.0.01只能接受本机的访问请求,不写的情况下,无限制接受任何ip地址的访问。
将其注释掉。这个在开发环境中,服务器是需要远程访问的,所以此处要写应用服务器的地址。
-
protected-mode yes
开启保护模式,如果开启了保护模式,那么在没有设定bind ip且没有设密码的情况下,Redis只允许接受本机的响应。
所以这个在开发环境中要改成
protected-mode no
-
port 6379:端口
-
tcp-backlog 511
设置tcp的backlog,backlog其实是一个连接队列,backlog队列综合等于未完成三次握手的队列+已经完成三次握手的队列。
在高并发环境下你需要一个高backlog值来避免客户端连接问题。
注意Linux内核会将这个值减小到/proc/sys/net/core/somaxconn的值(128),所以需要确认增大/proc/sys/net/core/somaxconn和/proc/sys/net/ipv4/tcp_max_syn_backlog(128)两个值来达到想要的效果。
-
timeout:一个空闲的客户端维持多少秒会关闭,0表示关闭该功能,即永不关闭。
-
tcp-keepalive 300
对访问客户端的一种心跳检测,每隔300s检测一次。如果该客户端已经断开,那么服务器也会释放连接。如果设置为0,则不会进行keepalive 心跳检测,建议设置成60.
1.4.GENERAL通用
-
daemonize yes
是否设置为后台进程,设置为yes,设置成守护进程后台启动。
-
pidfile /var/run/redis_6379.pid
设置存放进程号pid的路径位置,每个redis进程实例都会产生一个随机的pid号,都对应一个不同的pid文件。
-
loglevel notice
指定日志记录级别,Redis总共支持四个级别的日志:debug、verbose、notice、warning,默认是notice。
四个级别根据使用阶段来选择,生产环境选择notice或者warning。
-
logfile
设置日志的输出文件路径。
-
databases 16
设置数据库的数量,默认是16,默认数据库为0.
1.5.SECURITY安全
-
requirepass foobared:默认是没有密码的可以直接访问
-
设置密码:临时设置
在命令行中设置密码,只是临时的,重启redis服务器,密码就还原了。
- 永久设置密码:需要在配置文件中进行设置。
1.6.CLIENTS客户端
-
maxclients 10000
设置redis同时可以与多少个客户端进行连接。默认情况下为10000个客户端,如果达到了次限制,redis则会拒绝新的连接请求,并且同时向这些请求放发出“max number of clients reached”作为回应。
1.7.MEMORY MANAGEMENT内存管理
-
maxmemory
设置redis可以使用的内存量,一旦达到内存使用上限,redis将会试图移除内部数据,移除规则可以通过
maxmemory-policy
指定。建议必须设置,否则将内存占满,造成服务器宕机。
如果redis内存占满后,但是无法移除内存数据,或者无法根据
maxmemory-policy
指定的规则移除数据。那么对于需要申请内存的指令比如SET,LPUSh等会返回错误的信息。但是对于无内存申请的指令,仍然会正常响应,比如GET等。
如果你的redis是主redis,说明你的redis有从redis,那么在设置内存使用上限时,需要在系统中留出一些内存空间给同步队列缓存。
-
maxmemory-policy noeviction:内存满时的移除策略
volatile-lru:使用LRU算法移除key,只对设置了过期时间的键;(最近最少使用)
allkeys-lru:在所有集合key中,使用LRU算法移除key
volatile-random:在过期集合中移除随机的key,只对设置了过期时间的键
allkeys-random:在所有集合key中,移除随机的key
volatile-ttl:移除那些TTL值最小的key,即那些最近要过期的key
noeviction:不进行移除。针对写操作,只是返回错误信息
-
maxmemory-samples 5
设置样本数量,LRU算法和最小TTL算法都是并非精确的算法,而是估算值,所以你可以设置样本的大小,redis会默认检查这么多个key并选择其中LRU(最近最少使用)的那个。一般设置3~7的数字,数值越小样本越不准确,但性能消耗越小。
1.8.目前需要改的配置
1.bind 127.0.0.1 -::1:注释掉
2.保护模式protected-mode:开发环境中要改成protected-mode no
3.持久化相关的配置,后续再讲。
2.发布和订阅
1.什么是发布和订阅
- Redis发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。
- Redis客户端可以订阅发布者的所有频道。
2.Redis的发布和订阅
-
客户端可以订阅发布者的频道
-
当这个频道发布消息后,消息就会发送给订阅的客户端
3.命令行实现Redis的发布订阅 -
1.再打开一个客户端:目前两个客户端
-
2.客户端1订阅channel1:
SUBSCRIBE channel1
当有人向channel1频道中发信息,客户端1都可以接收到。
- 3.在客户单2中向channel1频道发消息:
publish channel1 hello
- 4.客户端1收到订阅的channel1中的消息:hello