Redis是一个开源的使用ANSI C编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API,它通常被称为数据结构服务器,因为值(value)可以是字符串(String)、哈希(Map)、列表(list)、集合(sets)和有序集合(sorted sets)等类型。
本文将详细介绍如何搭建Redis集群,包括环境准备、安装Redis、配置Redis、启动Redis、测试Redis等内容。
环境准备
1、操作系统:CentOS 7.x
2、Redis版本:5.0.3
3、JDK版本:1.8
4、Redis客户端工具:redis-cli
安装Redis
1、下载Redis安装包
在Redis官网下载对应版本的安装包,下载地址为:https://redis.io/download
2、解压安装包
tar -zxvf redis-5.0.3.tar.gz
3、进入解压后的目录
cd redis-5.0.3
配置Redis
1、修改配置文件
vim redis.conf
找到以下配置项进行修改:
关闭保护模式 protected-mode no 设置密码,如果有的话 requirepass your_password
2、复制配置文件到安装目录
cp redis.conf /usr/local/redis/bin/
启动Redis
1、创建Redis服务文件
vim /etc/systemd/system/redis.service
添加以下内容:
[Unit] Description=Redis In-Memory Data Store After=network.target Requires=network.target Conflicts=redis-server.service ConditionPathExists=/usr/local/redis/bin/redis-server [Service] ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/bin/redis.conf --daemonize yes --port 6379 --bind 127.0.0.1 注释掉这行,开放所有IP访问,否则只能本地访问,需要放开防火墙端口6379权限,如果需要指定IP访问,去掉注释即可,PIDFile=/var/run/redis_6379.pid PID文件路径,默认会生成一个名为“redis_6379.pid”的文件,该文件存储了Redis服务进程的ID号,ExecStop=/usr/local/redis/bin/redis-cli shutdown 停止命令Restart=always 自动重启服务,如果修改了配置文件,不用手动重启Redis服务,User=root 启动命令运行的用户Type=forking 采用fork()类UNIX函数复制当前进程,创建子进程,WorkingDirectory=/usr/local/redis 工作目录,启动命令执行的目录,StandardOutput=journal 标准输出方式为journal,日志记录方式,StandardError=syslog 标准错误输出方式为syslog,日志记录方式,SyslogIdentifier=redis-server 系统日志中记录的标识符,Environment=REDIS_HOME=/usr/local/redis 设置环境变量RestartSec=10s 自动重启服务的等待时间,超过这个时间会自动重启服务,Restart=on-failure 失败时自动重启服务,[Install]WantedBy=multi-user.target 被哪个服务管理,这里被multi-user.target管理,即多用户模式下启动,WantedBy=graphical.target 被哪个服务管理,这里被graphical.target管理,即图形界面模式下启动,WantedBy=sockets.target 被哪个服务管理,这里被sockets.target管理,即套接字模式下启动,WantedBy=xinetd.target 被哪个服务管理,这里被xinetd.target管理,即超级守护进程xinetd管理下启动,WantedBy=multi-user.target 被哪个服务管理,这里被multi-user.target管理,即多用户模式下启动,WantedBy=graphical.target 被哪个服务管理,这里被graphical.target管理,即图形界面模式下启动,WantedBy=sockets.target 被哪个服务管理,这里被sockets.target管理,即套接字模式下启动,WantedBy=xinetd.target 被哪个服务管理,这里被xinetd.target管理,即超级守护进程xinetd管理下启动,WantedBy=basic.target 被哪个服务管理,这里被basic.target管理,即基础模式下启动,WantedBy=manual.target 被哪个服务管理,这里被manual.target管理,即手动模式下启动,NoNewPrivileges=true 禁止新建特权用户组,LimitNOFILE=65535 限制文件描述符的数量。当一个进程打开的文件描述符数量达到65535时,该进程就不能再打开新的文件描述符了。如果需要修改这个值,可以修改配置文件中的“LimitNOFILE”选项的值。注意:修改这个值后需要重新加载配置文件才能生效,TimeoutStopSec=10s 停止超时时间,SendSIGKILL=no 是否发送SIGKILL信号给进程组和主进程,SendSIGTERM=yes 是否发送SIGTERM信号给进程组和主进程,CreateMask=0777 创建掩码值。当创建新文件或目录时,可以使用这个掩码值来控制文件或目录的权限。默认值为0777,表示所有用户都有读、写、执行权限。如果需要修改这个值,可以修改配置文件中的“CreateMask”选项的值。注意:修改这个值后需要重新加载配置文件才能生效,ConcurrentReadonly = false 是否允许并发读取只读数据快照,ConcurrentWrites = true 是否允许并发写入数据快照,ConcurrentReadwrite = false 是否允许并发读写数据快照,ConcurrentAOFBackup = false 是否允许并发备份AOF文件,ConcurrentAOFRewrite = false 是否允许并发重写AOF文件,ConcurrentSNARLDB = false 是否允许并发备份SNARLDB文件,ConcurrentSnapshot = false 是否允许并发备份快照文件,NotifyAccess = none 通知访问者的方式。当有其他进程访问Redis时,可以通过这个选项来通知Redis主进程。可选值有:none、gdb、systat、abrtd、aftd、saslauthd、exec、httpd、nfslock、ipp、named、mysqld、postfix、qmail、snmpd、squid、swat、syslog、uucp、zabbix等,ExecReload = /bin/kill -HUP $MAINPID 重新加载配置文件的命令,ExecStopPost = /bin/kill -QUIT $MAINPID 停止命令执行后执行的命令,PrivateTmp = true 是否使用私有临时目录,SaveParams = no 是否保存参数到配置文件中,MaxClients = 10000 最大客户端连接数,MaxMemory = 2GB 最大内存使用量,AppendOnlyYes = true 是否开启AOF持久化机制,AppendFile = "appendonly.aof" AOF持久化文件名,AppendfsyncEverysec = 60 每秒同步一次AOF文件,AlwaysAppendOnly = no 是否总是以AOF方式写入数据快照,No-Appendfsync-on-rewrite = no 在重写AOF文件时是否禁用同步操作,Auto-aof-rewrite-percentage = 100 自动重写AOF文件的百分比阈值,Auto-aof-rewrite-min-size = 64mb 自动重写AOF文件的最小大小阈值,LuaTimeLimit = 5000 Lua脚本执行的最大时间限制(毫秒),LuaJITMode = on 是否启用LuaJIT模式,LuaJITSleepInterval = 10ms LuaJIT模式的休眠间隔(毫秒),LuaScriptTimeout = 500ms Lua脚本执行的超时时间(毫秒),Logfile = "" 日志文件路径及名称,Loglevel = notice 日志级别,Slaveof = "" 主从复制的从节点地址和端口号,Masterauth = "" 主从复制的主节点密码认证信息,ClusterNodes = "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/346467.html