ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

二、Redis配置

2021-11-23 13:03:50  阅读:143  来源: 互联网

标签:key Redis 配置 redis Bitmaps 设置 移除 客户端


二、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这个"数据类型"可以实现对位的操作

    • Bitmaps本身不是一种数据类型,实际上它就是字符串(key-value),但是它可以对字符串的位进行操作

    • Bitmaps单独提供了一套指令,所有在Redis中使用Bitmaps和使用字符串的方法不太相同。可以把Bitmaps想象成一个以位为单位的数组,数组的每个单元只能存储0和1,数组的下标在Bitmaps中叫做偏移量

      命令语法描述
      setbit key offset value设置Bitmaps中的某个偏移量的值(0,1)offset:偏移量从0开始
      getbit key offset获取Bitmaps中某个偏移量的值
      bitcount key [start end]统计字符串从start字节到end字节比特值为1的数量
      (start和end参数的设置,都可以使用负数值:比如-1表示最后一个位,-2表示倒数第二个位,start、end是指bit组的字节下标数,二者皆包含)
      bitop and(or/not/xor)bitop是一个符合操作,它可以做多个Bitmaps的and(交集)、or(并集)、not(非)、xor(亦或)操作并将结果保存在destkey中
  • 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以给定的经纬度为中心,找出某一半径内的元素

标签:key,Redis,配置,redis,Bitmaps,设置,移除,客户端
来源: https://blog.csdn.net/weixin_46203713/article/details/121490702

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有