本文主要是介绍二、Redis配置,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
二、Redis配置
1、redis配置文件
- 单位(#Units#) : 配置文件的开头部分定义了一些基本的度量单位,只支持bytes,不支持bit,大小写不敏感
- 包含(#INCLUDE#):多实例的情况,可以把共用的配置文件提取出来
- 网络相关(#NetWord#):默认情况:bind=127.0.0.1 # 只能接收本机的访问请求
- 不写 ,将该语句注释,可以无限制的接收任何ip地址的访问
- 生产环境肯定要写你应用服务器的地址:服务器是需要远程访问的,所以要将其注释掉
- 注:如果开启了protected-mode,那么在没有设定bind ip 且没有设置密码的情况下,redis只允许接收本机的响应
- protected-mode :将本机访问保护模式设置no
- port :端口 默认 6379
- tcp-backlog :设置tcp的backlog,backlog其实是一个连接队列,backlog队列总和=未完成三次握手队列+已经完成三次握手队列。在高并发的环境下你需要一个高backlog值来避免慢客户端连接问题
- timeout :一个空闲的客户端维持多少秒会关闭,0表示关闭该功能,即永不关闭
- 对方问客户端的一种心跳检测,每个n秒检测一次,单位为秒,如果设置为0,则不会进行keepalive检测,建议设置60
- 通用(#General#) : 一些通用设置
- daemonize : 手否为后台进程,设置为yes 守护进程,后台启动
- pidfile :存放pid文件的位置,每个实例会产生一个不同的pid文件
- loglevel : 指定日志记录几倍,redis共支持四个级别:debug | verbose | notice | warning 默认notice
- logfile :日志文件名称
- databases : 16 设置库的数量 默认16 ,默认数据库为0号数据库,可以使用select num 命令在连接上指定数据库id
- 安全(#Security#) : 安全设置
- 访问密码的查看、设置和取消,在命令中设置密码,只是临时的,容器redis服务器密码就还原了,永久设置需要在配置文件中进行设置
- 限制(#Limits#) : 限制
- maxclients : 设置redis同时可以与多个客户端进行连接
- 默认情况下为10000个客户端
- 如果达到了此限制,redis会拒绝新的连接请求,并且向这些连接请求发出"max number of clients reached" 作为回应
- maxmemory : 建议必须设置,斗则内存占满,造成服务器宕机
- 设置redis可以使用的内存量,一旦达到内存使用上限,redis将会视图移除内部数据,移除规则可以通过maxmemory-policy来指定
- 如果redis无法根据移除规则来移除内存中的数据,或者设置了"不允许移除",那么redis则会针对那些需要申请内存的指定返回错误信息,如 SET | LPUSH 等
- 但是对于无内存申请的指定,仍然会做出正常响应,比如GET等,如果你的redis是主redis(说明你的redis有从redis),那么再设置内存使用上限时,需要在系统中流出一些内存空间给同步队列缓存,只有在你设置的是"不移除"的情况下,才不用考虑这个因素
- maxmemory-policy :
- volatile-lru : 使用LRU算法移除key,只对设置了过期时间的键(最近最少使用)
- allkeys-lru : 在所有集合key中,使用LRU算法移除key
- volatile-random :在过期集合中移除随机的key,只对设置了过期时间的键
- allkeys-random : 在所有集合key中,移除随机的key
- volatile-ttl : 移除那些TTL值最小的key,即那些最近要过期的key
- noeviction : 不进行移除,针对写操作,只是返回错误信息
- maxmemory-samples :
- 设置样本数量,LRU算法和最小TTL算法都并非是精确的算法,而是估算值,所以你那个可以设置样本的大小,redis默认会检查这么多个key并选择其中LRU的那个
- 一般设置3到7的数字,数值越小样本越不准确,但性能消耗最小
2、redis的发布和订阅
-
什么是发布和订阅?
- redis发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息
- redis客户端可以订阅任意数量的频道
-
客户端可以订阅频道
-
当这个频道发布消息后,消息就会发送给订阅的客户端
-
命令行实现发布与订阅的功能
-
3、redis新数据类型
-
Bitmaps : redis提供了Bitmaps这个"数据类型"可以实现对位的操作
-
HyperLoglog : 用来做统计工作,HyperLoglog只会根据输入元素来计算基数,而不会存储输入元素本身,所以HyperLoglog不能像集合那样,返回输入的各个元素
-
基数 :比如数据集{1,3,5,7,5,7,8} ,那么这个数据集的基数集为{1,3,5,7,8}基数(不重复元素)为5。基数估计就是在误差可接受的范围内,快速计算基数
命令语法 | 描述 |
---|
pfadd key [element element] | 添加指定元素到HyperLoglog中 |
pfcount key [key] | 计算HLL的近似技术,可以计算多个HLL,比如用HLL存储每天的UV,计算一周的UV可以使用7天的UV合并计算即可 |
pfmerge destkey sourcekey [sourcekey] | 将一个或多个HLL合并后的结果存储在另一个HLL中 |
-
Geospatial : redis3.2时增加了对GEO类型的支持,地理信息的缩写。redis基于该类型同乐经纬度的设置
命令语法 | 描述 |
---|
geoadd key longitude latitude member […] | 添加地理位置(经度,纬度,名称,不能添加已有的) (当坐标位置超出指定范围,该命令将会返回一个错误) |
geopos key member [member] | 获得指定地区的坐标值 |
geodist key member1 member2 [m|km|ft|mi] | 获取两个位置之间的直线距离 |
georadius key longitude latitude radius m|km|ft|mi | 以给定的经纬度为中心,找出某一半径内的元素 |
这篇关于二、Redis配置的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!