热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

为什么我keepalive配置的vip不能通_Redis安装与配置,一点课堂(多岸学院)

Redis安装与配置Redisisanopensource(BSDlicensed),in-memorydatastructurestore,usedasdatabase,cach

Redis安装与配置

Redis is an open source (BSD licensed), in-memory data structure store, used as database, cache and message broker.It supports data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs and geospatial indexes with radius queries.

Redis作为如今比较火热的NoSQL数据库,在数据的热数据存储和查询方面有着不错的应用,这篇文章将介绍Redis的安装和配置信息。

下载、安装Redis

  1. http://redis.io/download

wget http://download.redis.io/releases/redis-3.0.7.tar.gz

  1. 解压

tar xzf redis-3.0.7.tar.gz

  1. 赋予权限

udo chmod -R 775 redis-3.0.7/

  1. make

cd redis-3.0.7/make

  1. install tcl

sudo apt-get install tcl

  1. make test

make test

  1. make install

make PREFIX=/home/server/software/redisInstall install

配置与启动

  1. 进入目录

cd /home/server/software/redisInstall/bin

  1. 文件介绍
  2. 文件名介绍redis-benchmarkredis性能测试工具redis-check-aofaof日志检查工具redis-check-dump rdb日志检查工具redis-cliredis客户端连接redis-serverredis服务进程复制配置文件

cp ../../redis-3.0.7/redis.conf ../

  1. 启动redis服务

cd .../bin/redis-server ./redis.conf

26049:M 24 Mar 16:59:56.768 # You requested maxclients of 10000 requiring atleast 10032 max file descriptors.26049:M 24 Mar 16:59:56.768 # Redis can't set maximum open files to 10032because of OS error: Operation not permitted.26049:M 24 Mar 16:59:56.768 # Current maximum open files is 4096. maxclientshas been reduced to 4064 to compensate for low ulimit. If you need highermaxclients increase 'ulimit -n'..

.- ''-.

.- . . ''-._ Redis 3.0.7 (00000000/0) 64 bit.- .-. / ., ''-._

( ' , .- | , ) Running in standalone mode|-._-...- __...-.-._|' _.-'| Port: 6379| -._ . / .-' | PID: 26049-._ -. `-./ .-' _.-'

|-._-. `-..-' .-'_.-'|

| -._-. .-'_.-' | http://redis.io

-._ -.`-..-'.-' _.-'

|-._-. `-..-' .-'_.-'|

| -._-. .-'_.-' |

-._ -.`-..-'.-' _.-'

-._ -.__.-' _.-'

`-._ _.-'

`-.__.-'

  1. 开启后台进程配置

vim redis.conf

修改如下字段,重启server

daemonize yes

  1. 客户端测试连接

./bin/redis-cli

set test "This is a redis test"get test

redis.conf 配置详解

######################### 通用 ########################## 启动后台进程daemonize yes# 后台进程的pid文件存储位置pidfile /var/run/redis.pid# 默认监听端口port 6379# 在高并发的环境中&#xff0c;为避免慢客户端的连接问题&#xff0c;需要设置一个高速后台日志tcp-backlog 511# 只接受以下绑定的IP请求# Examples:# bind 192.168.1.100 10.0.0.1bind 127.0.0.1# 设置unix监听&#xff0c;默认为空# unixsocket /tmp/redis.sock# unixsocketperm 700#客户端空闲多长时间&#xff0c;关闭链接&#xff0c;0表示不关闭timeout 0# TCP keepalive.# 如果是非零值&#xff0c;当失去链接时&#xff0c;会使用SO_KEEPALIVE发送TCP ACKs 到客户端。# 这个参数有两个作用:# 1.检测断点。# 2.从网络中间设备来看&#xff0c;就是保持链接# 在Linux上&#xff0c;设定的时间就是发送ACKs的周期。# 注意&#xff1a;达到双倍的设定时间才会关闭链接。在其他内核上&#xff0c;周期依赖于内核设置。# 一个比较合理的值为60stcp-keepalive 0# 指定日志级别&#xff0c;以下记录信息依次递减# debug用于开发/测试# verbose没debug那么详细# notice适用于生产线# warning只记录非常重要的信息loglevel notice#日志文件名称&#xff0c;如果为stdout则输出到标准输出端&#xff0c;如果是以后台进程运行则不产生日志logfile ""# 要想启用系统日志记录器&#xff0c;设置一下选项为yes# syslog-enabled no# 指明syslog身份# syslog-ident redis# 指明syslog设备。必须是一个用户或者是local0 ~ local7之一# syslog-facility local0#设置数据库数目&#xff0c;第一个数据库编号为&#xff1a;0databases 16######################### 快照 ########################## 在什么条件下保存数据库到磁盘&#xff0c;条件可以有很多个&#xff0c;满足任何一个条件都会进行快照存储# 在900秒之内有一次key的变化save 900 1# 在300秒之内&#xff0c;有10个key的变化save 300 10# 在60秒之内有10000个key变化save 60 10000# 当持久化失败的时候&#xff0c;是否继续提供服务stop-writes-on-bgsave-error yes# 当写入磁盘时&#xff0c;是否使用LZF算法压缩数据&#xff0c;默认为yesrdbcompression yes# 是否添加CRC64校验到每个文件末尾--花费时间保证安全rdbchecksum yes# 磁盘上数据库的保存名称dbfilename dump.rdb# Redis工作目录&#xff0c;以上数据库保存文件和AOF日志都会写入此目录dir ./######################### 主从同步 ########################## 主从复制&#xff0c;当本机是slave时配置# slaveof # 当主机需要密码验证时候配置# masterauth # 当slave和master丢失链接&#xff0c;或正处于同步过程中。是否响应客户端请求# 设置为yes表示响应# 设置为no&#xff0c;直接返回"SYNC with master in progress"(正在和主服务器同步中)slave-serve-stale-data yes# 设置slave是否为只读。# 注意&#xff1a;即使slave设置为只读&#xff0c;也不能令其暴露在不受信任的网络环境中slave-read-only yes# 无硬盘复制功能repl-diskless-sync no# 等待多个slave一起来请求之间的间隔时间repl-diskless-sync-delay 5# 设置slave给master发送ping的时间间隔# repl-ping-slave-period 10# 设置数据传输I/O&#xff0c;主机数据、ping响应超时时间&#xff0c;默认60s# 这个时间一定要比repl-ping-slave-period大&#xff0c;否则会不断检测到超时# repl-timeout 60# 是否在SYNC后slave socket上禁用TCP_NODELAY&#xff1f;# 如果你设置为yes&#xff0c;Redis会使用少量TCP报文和少量带宽发送数据给slave。# 但是这样会在slave端出现延迟。如果使用Linux内核的默认设置&#xff0c;大概40毫秒。# 如果你设置为no&#xff0c;那么在slave端研究就会减少但是同步带宽要增加。# 默认我们是为低延迟优化的。# 但是如果流量特别大或者主从服务器相距比较远&#xff0c;设置为yes比较合理。repl-disable-tcp-nodelay no# 设置复制的后台日志大小。# 复制的后台日志越大&#xff0c; slave 断开连接及后来可能执行部分复制花的时间就越长。# 后台日志在至少有一个 slave 连接时&#xff0c;仅仅分配一次。# repl-backlog-size 1mb# 在 master 不再连接 slave 后&#xff0c;后台日志将被释放。下面的配置定义从最后一个 slave 断开连接后需要释放的时间(秒)。# 0 意味着从不释放后台日志# repl-backlog-ttl 3600# 设置slave优先级&#xff0c;默认为100# 当主服务器不能正确工作的时候&#xff0c;数字低的首先被提升为主服务器&#xff0c;但是0是禁用选择slave-priority 100# 如果少于 N 个 slave 连接&#xff0c;且延迟时间 <&#61;M 秒&#xff0c;则 master 可配置停止接受写操作。# 例如需要至少 3 个 slave 连接&#xff0c;且延迟 <&#61;10 秒的配置&#xff1a;# min-slaves-to-write 3# min-slaves-max-lag 10# 设置 0 为禁用# 默认 min-slaves-to-write 为 0 (禁用)&#xff0c; min-slaves-max-lag 为 10######################### 安全 ########################## 设置客户端连接密码&#xff0c;因为Redis响应速度可以达到每秒100w次&#xff0c;所以密码要特别复杂# requirepass 1413# 命令重新命名&#xff0c;或者禁用。# 重命名命令为空字符串可以禁用一些危险命令比如&#xff1a;FLUSHALL删除所有数据# 需要注意的是&#xff0c;写入AOF文件或传送给slave的命令别名也许会引起一些问题# rename-command CONFIG ""

# 设置客户端连接密码&#xff0c;因为Redis响应速度可以达到每秒100w次&#xff0c;所以密码要特别复杂requirepass 1413# 命令重新命名&#xff0c;或者禁用。# 重命名命令为空字符串可以禁用一些危险命令比如&#xff1a;FLUSHALL删除所有数据# 需要注意的是&#xff0c;写入AOF文件或传送给slave的命令别名也许会引起一些问题# rename-command CONFIG ""######################### 限制 ########################## 设置最多链接客户端数量&#xff0c;默认为10000。# 实际可以接受的请求数目为设置值减去32&#xff0c;这32是Redis为内部文件描述符保留的# maxclients 10000# 设置最多链接客户端数量&#xff0c;默认为10000。# 实际可以接受的请求数目为设置值减去32&#xff0c;这32是Redis为内部文件描述符保留的# maxclients 10000# 设置最大使用内存数量&#xff0c;在把Redis当作LRU缓存时特别有用。# 设置的值要比系统能使用的值要小# 因为当启用删除算法时&#xff0c;slave输出缓存也要占用内存# maxmemory #达到最大内存限制时&#xff0c;使用何种删除算法# volatile-lru 使用LRU算法移除带有过期标致的key# allkeys-lru -> 使用LRU算法移除任何key# volatile-random -> 随机移除一个带有过期标致的key# allkeys-random -> 随机移除一个key# volatile-ttl -> 移除最近要过期的key# noeviction -> 不删除key&#xff0c;当有写请求时&#xff0c;返回错误#默认设置为volatile-lru# maxmemory-policy noeviction# LRU和最小TTL算法没有精确的实现# 为了节省内存只在一个样本范围内选择一个最近最少使用的key&#xff0c;可以设置这个样本大小# maxmemory-samples 5######################### AO模式 ########################## AOF和RDB持久化可以同时启用# Redis启动时候会读取AOF文件&#xff0c;AOF文件有更好的持久化保证appendonly no# AOF的保存名称&#xff0c;默认为appendonly.aofappendfilename "appendonly.aof"# 设置何时写入追加日志&#xff0c;又三种模式# no&#xff1a;表示由操作系统决定何时写入。性能最好&#xff0c;但可靠性最低# everysec&#xff1a;表示每秒执行一次写入。折中方案&#xff0c;推荐# always&#xff1a;表示每次都写入磁盘。性能最差&#xff0c;比上面的安全一些# appendfsync alwaysappendfsync everysec# appendfsync no# 当AOF同步策略设定为alway或everysec# 当后台存储进程(后台存储或者AOF日志后台写入)会产生很多磁盘开销# 某些Linux配置会使Redis因为fsync()调用产生阻塞很久# 现在还没有修复补丁&#xff0c;甚至使用不同线程进行fsync都会阻塞我们的同步write(2)调用。# 为了缓解这个问题&#xff0c;使用以下选项在一个BGSAVE或BGREWRITEAOF运行的时候# 可以阻止fsync()在主程序中被调用&#xff0c;no-appendfsync-on-rewrite no# AOF自动重写(合并命令&#xff0c;减少日志大小)# 当AOF日志大小增加到一个特定比率&#xff0c;Redis调用BGREWRITEAOF自动重写日志文件# 原理&#xff1a;Redis 会记录上次重写后AOF文件的文件大小。# 如果刚启动&#xff0c;则记录启动时AOF大小# 这个基本大小会用来和当前大小比较。如果当前大小比特定比率大&#xff0c;就会触发重写。# 你也需要指定一个AOF需要被重写的最小值&#xff0c;这样会避免达到了比率。# 但是AOF文件还很小的情况下重写AOF文件。# 设置为0禁用自动重写auto-aof-rewrite-percentage 100auto-aof-rewrite-min-size 64mb#redis在启动时可以加载被截断的AOF文件&#xff0c;而不需要先执行 redis-check-aof 工具aof-load-truncated yes######################### LUA脚本 ########################## Lua脚本的最大执行时间&#xff0c;单位毫秒# 超时后会报错&#xff0c;并且计入日志# 当一个脚本运行时间超过了最大执行时间# 只有SCRIPT KILL和 SHUTDOWN NOSAVE两个命令可以使用。# SCRIPT KILL用于停止没有调用写命令的脚本。# SHUTDOWN NOSAVE是唯一的一个&#xff0c;在脚本的写命令正在执行# 用户又不想等待脚本的正常结束的情况下&#xff0c;关闭服务器的方法。# 以下选项设置为0或负数就会取消脚本执行时间限制lua-time-limit 5000####################### redis集群 ######################### 是否启用集群# cluster-enabled yes# 集群配置文件# 集群配置变更后会自动写入改文件# cluster-config-file nodes-6379.conf# 节点互连超时的阀值 # 节点超时时间&#xff0c;超过该时间无法连接主要Master节点后&#xff0c;会停止接受查询服务 # cluster-node-timeout 15000# 控制从节点FailOver相关的设置,设为0&#xff0c;从节点会一直尝试启动FailOver.# 设为正数&#xff0c;失联大于一定时间(factor*节点TimeOut)&#xff0c;不再进行FailOver# cluster-slave-validity-factor 10# 最小从节点连接数# cluster-migration-barrier 1# 默认为Yes,丢失一定比例Key后(可能Node无法连接或者挂掉)&#xff0c;集群停止接受写操作# 设置为No&#xff0c;集群丢失Key的情况下仍提供查询服务# cluster-require-full-coverage yes######################### 慢查询 ########################## Redis慢查询日志记录超过设定时间的查询&#xff0c;且只记录执行命令的时间# 不记录I/O操作&#xff0c;比如&#xff1a;和客户端交互&#xff0c;发送回复等。# 时间单位为微妙&#xff0c;1000000微妙 &#61; 1 秒# 设置为负数会禁用慢查询日志&#xff0c;设置为0会记录所有查询命令slowlog-log-slower-than 10000# 日志长度没有限制&#xff0c;但是会消耗内存。超过日志长度后&#xff0c;最旧的记录会被移除# 使用SLOWLOG RESET命令可以回收内存slowlog-max-len 128######################### 延迟监测 ########################## 系统只记录超过设定值的操作&#xff0c;单位是毫秒&#xff0c;0表示禁用该功能 # 可以通过命令“CONFIG SET latency-monitor-threshold ” 直接设置而不需要重启redis latency-monitor-threshold 0######################### 事件通知 ########################## 当事件发生时&#xff0c; Redis 可以通知 Pub/Sub 客户端。# 可以在下表中选择 Redis 要通知的事件类型。事件类型由单个字符来标识&#xff1a;# K Keyspace 事件&#xff0c;以 _keyspace&#64;_ 的前缀方式发布# E Keyevent 事件&#xff0c;以 _keysevent&#64;_ 的前缀方式发布# g 通用事件(不指定类型)&#xff0c;像 DEL, EXPIRE, RENAME, …# $ String 命令# s Set 命令# h Hash 命令# z 有序集合命令# x 过期事件(每次 key 过期时生成)# e 清除事件(当 key 在内存被清除时生成)# A g$lshzxe 的别称&#xff0c;因此 ”AKE” 意味着所有的事件# notify-keyspace-events 带一个由 0 到多个字符组成的字符串参数。空字符串意思是通知被禁用。# 例子&#xff1a;启用 list 和通用事件&#xff1a;# notify-keyspace-events Elg# 默认所用的通知被禁用&#xff0c;因为用户通常不需要改特性&#xff0c;并且该特性会有性能损耗。# 注意如果你不指定至少 K 或 E 之一&#xff0c;不会发送任何事件。notify-keyspace-events ""#notify-keyspace-events AKE######################### 高级设置 ########################## 当有少量条目的时候&#xff0c;哈希使用高效内存数据结构。最大的条目也不能超过设定的阈值。# “少量”定义如下&#xff1a;hash-max-ziplist-entries 512hash-max-ziplist-value 64# 和哈希编码一样&#xff0c;少量列表也以特殊方式编码节省内存。“少量”设定如下&#xff1a;list-max-ziplist-entries 512list-max-ziplist-value 64# 集合只在以下情况下使用特殊编码来节省内存# -->集合全部由64位带符号10进制整数构成的字符串组成# 下面的选项设置这个特殊集合的大小。set-max-intset-entries 512# 当有序集合的长度和元素设定为以下数字时&#xff0c;又特殊编码节省内存zset-max-ziplist-entries 128zset-max-ziplist-value 64

# HyperLogLog 稀疏表示字节限制# 这个限制包含了16个字节的头部&#xff0c;当一个HyperLogLog使用sparse representation# 超过了这个显示&#xff0c;它就会转换到dense representation上hll-sparse-max-bytes 3000# 哈希刷新使用每100个CPU毫秒中的1毫秒来帮助刷新主哈希表(顶级键值映射表)。# Redis哈希表使用延迟刷新机制&#xff0c;越多操作&#xff0c;越多刷新。# 如果服务器空闲&#xff0c;刷新操作就不会进行&#xff0c;更多内存会被哈希表占用# 默认每秒进行10次主字典刷新&#xff0c;释放内存。# 如果你有硬性延迟需求&#xff0c;偶尔2毫秒的延迟无法忍受的话。设置为no# 否则设置为yesactiverehashing yes# 客户端输出缓存限制强迫断开读取速度比较慢的客户端# 有三种类型的限制# normal -> 正常# slave -> slave和 MONITOR# pubsub -> 客户端至少订阅了一个频道或者模式# 客户端输出缓存限制语法如下(时间单位&#xff1a;秒)# client-output-buffer-limit # 达到强制限制缓存大小&#xff0c;立刻断开链接。# 达到软性限制&#xff0c;仍然会有软性时间大小的链接时间# 默认正常客户端无限制&#xff0c;只有请求后&#xff0c;异步客户端数据请求速度快于它能读取数据的速度# 订阅模式和主从客户端又默认限制&#xff0c;因为它们都接受推送。# 强制限制和软性限制都可以设置为0来禁用这个特性client-output-buffer-limit normal 0 0 0client-output-buffer-limit slave 256mb 64mb 60client-output-buffer-limit pubsub 32mb 8mb 60# 设置Redis后台任务执行频率&#xff0c;比如清除过期键任务。# 设置范围为1到500&#xff0c;默认为10.越大CPU消耗越大&#xff0c;延迟越小。# 建议不要超过100hz 10# 当子进程重写AOF文件&#xff0c;以下选项开启时&#xff0c;AOF文件会每产生32M数据同步一次。# 这有助于更快写入文件到磁盘避免延迟aof-rewrite-incremental-fsync yes

3fd5759d5c78001a385915d2f892cd11.png

QQ讨论群组&#xff1a;984370849 706564342 欢迎加入讨论

想要深入学习的同学们可以加入QQ群讨论&#xff0c;有全套资源分享&#xff0c;经验探讨&#xff0c;没错&#xff0c;我们等着你&#xff0c;分享互相的故事!

d05fb9c1ba22fb8f87695e08541a1678.png



推荐阅读
  • 在CentOS 7环境中安装配置Redis及使用Redis Desktop Manager连接时的注意事项与技巧
    在 CentOS 7 环境中安装和配置 Redis 时,需要注意一些关键步骤和最佳实践。本文详细介绍了从安装 Redis 到配置其基本参数的全过程,并提供了使用 Redis Desktop Manager 连接 Redis 服务器的技巧和注意事项。此外,还探讨了如何优化性能和确保数据安全,帮助用户在生产环境中高效地管理和使用 Redis。 ... [详细]
  • 本文详细介绍了 InfluxDB、collectd 和 Grafana 的安装与配置流程。首先,按照启动顺序依次安装并配置 InfluxDB、collectd 和 Grafana。InfluxDB 作为时序数据库,用于存储时间序列数据;collectd 负责数据的采集与传输;Grafana 则用于数据的可视化展示。文中提供了 collectd 的官方文档链接,便于用户参考和进一步了解其配置选项。通过本指南,读者可以轻松搭建一个高效的数据监控系统。 ... [详细]
  • 在Linux系统中避免安装MySQL的简易指南
    在Linux系统中避免安装MySQL的简易指南 ... [详细]
  • MySQL Decimal 类型的最大值解析及其在数据处理中的应用艺术
    在关系型数据库中,表的设计与SQL语句的编写对性能的影响至关重要,甚至可占到90%以上。本文将重点探讨MySQL中Decimal类型的最大值及其在数据处理中的应用技巧,通过实例分析和优化建议,帮助读者深入理解并掌握这一重要知识点。 ... [详细]
  • PTArchiver工作原理详解与应用分析
    PTArchiver工作原理及其应用分析本文详细解析了PTArchiver的工作机制,探讨了其在数据归档和管理中的应用。PTArchiver通过高效的压缩算法和灵活的存储策略,实现了对大规模数据的高效管理和长期保存。文章还介绍了其在企业级数据备份、历史数据迁移等场景中的实际应用案例,为用户提供了实用的操作建议和技术支持。 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • 本文介绍了如何利用Shell脚本高效地部署MHA(MySQL High Availability)高可用集群。通过详细的脚本编写和配置示例,展示了自动化部署过程中的关键步骤和注意事项。该方法不仅简化了集群的部署流程,还提高了系统的稳定性和可用性。 ... [详细]
  • RocketMQ在秒杀时的应用
    目录一、RocketMQ是什么二、broker和nameserver2.1Broker2.2NameServer三、MQ在秒杀场景下的应用3.1利用MQ进行异步操作3. ... [详细]
  • 在OpenShift上部署基于MongoDB和Node.js的多层应用程序
    本文档详细介绍了如何在OpenShift 4.x环境中部署一个包含MongoDB数据库和Node.js后端及前端的多层应用程序。通过逐步指导,读者可以轻松完成整个部署过程。 ... [详细]
  • 本文详细介绍了如何在 Linux 系统上安装 JDK 1.8、MySQL 和 Redis,并提供了相应的环境配置和验证步骤。 ... [详细]
  • 开机自启动的几种方式
    0x01快速自启动目录快速启动目录自启动方式源于Windows中的一个目录,这个目录一般叫启动或者Startup。位于该目录下的PE文件会在开机后进行自启动 ... [详细]
  • 您的数据库配置是否安全?DBSAT工具助您一臂之力!
    本文探讨了Oracle提供的免费工具DBSAT,该工具能够有效协助用户检测和优化数据库配置的安全性。通过全面的分析和报告,DBSAT帮助用户识别潜在的安全漏洞,并提供针对性的改进建议,确保数据库系统的稳定性和安全性。 ... [详细]
  • 在使用 Cacti 进行监控时,发现已运行的转码机未产生流量,导致 Cacti 监控界面显示该转码机处于宕机状态。进一步检查 Cacti 日志,发现数据库中存在 SQL 查询失败的问题,错误代码为 145。此问题可能是由于数据库表损坏或索引失效所致,建议对相关表进行修复操作以恢复监控功能。 ... [详细]
  • Unity与MySQL连接过程中出现的新挑战及解决方案探析 ... [详细]
  • 在对WordPress Duplicator插件0.4.4版本的安全评估中,发现其存在跨站脚本(XSS)攻击漏洞。此漏洞可能被利用进行恶意操作,建议用户及时更新至最新版本以确保系统安全。测试方法仅限于安全研究和教学目的,使用时需自行承担风险。漏洞编号:HTB23162。 ... [详细]
author-avatar
sdfqwerwfds
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有