Redis 安装学习
程序员文章站
2022-07-15 13:55:55
...
1、安装redis
下载redis安装包 redis-3.2.4.tar.gz
创建redis目录
安装完成后, /usr/local/redis/bin 包含以下文件
2、做成redis服务
先找到 redis_init_script脚本,位于刚才的解压缩的文件 redis-3.2.4中
复制到 /etc/init.d/ 目录下,并修改为redis
进入刚才复制redis,脚本内容
以上是修改后的文件,修改的地方有:
EXEC 和CLIEXEC,配置对应安装的地方
PIDFILE 需要在对应 var/run 目录下找redis文件,如果是redis.pid,就删除_{REDISPORT},redis_6379.pid就不用修改
CONF是拷贝的配置文件,找到解压包中的redis.conf,复制变更改为6379.conf
最后 在$EXEC $CONF 添加 & 表示后台运行
接下来在网上找都是通过 chkconfig 指令进行操作,结果自己测试找不到这个指令,发现ubuntu早没有了,后面找到sysv-rc-conf可代替,sysv-rc-conf用来管理ubuntu server,这里只是简单的用了下
安装
完成后,即可注册redis服务
启动服务
最后修改 /etc/profile 文件,添加
3、参数配置
修改权限配置,修改后客户端jedis连接时都需要提供密码
注释绑定ip
后台启动
主从配置,配置后主从可以进行读写分离,主节点可以进行写操作,从节点只能进行读操作
数据备份
日志和数据保存,先创建目录
配置修改:
备份策略
含义:
如上的设置,会在60s内、如果有1000个key发生改变就进行持久化,可设置多个save选项,默认持久化到dump.rdb。
文件追加(aof):append-only-file模式。Redis会将每个接收到的“写命令”通过write函数追加到appendonly.aof文件,重启Redis时通过该文件重建整个数据库。由于os内核会缓存write函数所做的“修改”,可以使用fsync函数指定写入到磁盘的方式。
两种方式的比较:
快照方式:性能较好,但是快照间隔期间,如果宕机将造成数据丢失。
AOF模式:影响性能,不容易造成数据丢失。
如果Redis宕机:重启Redis即可,会自动使用redis.rdb、appendonly.aof恢复数据库。主从备份:从数据安全性角度考虑。
关闭快照功能。
同时设置主从服务器都为AOF模式。
说明:如果仅对Slave进行持久化设置,重启时,Slave自动和Master进行同步,全部数据丢失
4、Jedis连接问题
下载jidis,直接测试
出现 connection refused 问题,需要关闭linux 防火墙, ubuntuOS 查看防火墙状态:
然后关闭
出现DENIED Redis is running in protected mode because protected mode is enabled问题;需要将redis.conf文件中要将protected-mode yes改为no
出现NOAUTH Authentication required 问题,由于自己开始启动时没有设置密码,后面又修改添加了密码,关闭时出现问题,使用kill强制结束进程,再启动OK
下载redis安装包 redis-3.2.4.tar.gz
创建redis目录
mkdir /usr/local/redis cp redis-3.2.4.tar.gz /usr/local/redis #将安装包拷贝到指定目录 tar -zxvf redis-3.2.4.tar.gz cd redis-3.2.4 make PREFIX=/usr/local/redis install #安装到指定目录,不指定将会默认安装到local/bin目录下用的是ubuntuOS,自带REFIX指令
安装完成后, /usr/local/redis/bin 包含以下文件
redis-benchmark redis-check-aof redis-check-rdb redis-cli redis-sentinel redis-server
2、做成redis服务
先找到 redis_init_script脚本,位于刚才的解压缩的文件 redis-3.2.4中
cd /usr/locak/redis/redis-3.2.4/utils
复制到 /etc/init.d/ 目录下,并修改为redis
cp redis_init_script /etc/init.d/redis
进入刚才复制redis,脚本内容
#!/bin/sh # # Simple Redis init.d script conceived to work on Linux systems # as it does use of the /proc filesystem. REDISPORT=6379 EXEC=/usr/local/redis/bin/redis-server CLIEXEC=/usr/local/redis/bin/redis-cli PIDFILE=/var/run/redis_${REDISPORT}.pid CONF="/etc/redis/${REDISPORT}.conf" case "$1" in start) if [ -f $PIDFILE ] then echo "$PIDFILE exists, process is already running or crashed" else echo "Starting Redis server..." $EXEC $CONF & fi ;; stop) if [ ! -f $PIDFILE ] then echo "$PIDFILE does not exist, process is not running" else PID=$(cat $PIDFILE) echo "Stopping ..." $CLIEXEC -p $REDISPORT shutdown while [ -x /proc/${PID} ] do echo "Waiting for Redis to shutdown ..." sleep 1 done echo "Redis stopped" fi ;; *) echo "Please use start or stop as first argument" ;; esac
以上是修改后的文件,修改的地方有:
EXEC 和CLIEXEC,配置对应安装的地方
EXEC=/usr/local/redis/bin/redis-server CLIEXEC=/usr/local/redis/bin/redis-cli
PIDFILE 需要在对应 var/run 目录下找redis文件,如果是redis.pid,就删除_{REDISPORT},redis_6379.pid就不用修改
PIDFILE=/var/run/redis_${REDISPORT}.pid
CONF是拷贝的配置文件,找到解压包中的redis.conf,复制变更改为6379.conf
CONF="/etc/redis/${REDISPORT}.conf"
mkdir /etc/redis cp redis.conf /etc/redis/6379.conf
最后 在$EXEC $CONF 添加 & 表示后台运行
接下来在网上找都是通过 chkconfig 指令进行操作,结果自己测试找不到这个指令,发现ubuntu早没有了,后面找到sysv-rc-conf可代替,sysv-rc-conf用来管理ubuntu server,这里只是简单的用了下
安装
sudo apt-get install sysv-rc-conf
完成后,即可注册redis服务
sudo sysv-rc-conf redis on
启动服务
Service redis start
最后修改 /etc/profile 文件,添加
export PATH="$PATH:/usr/local/redis/bin"
3、参数配置
vi /etc/redis/6379.conf
修改权限配置,修改后客户端jedis连接时都需要提供密码
requirepass password
注释绑定ip
bind 127.0.0.1 #jedis连接需要注释
后台启动
daemonize yes #启动方式,yes为后台启动,
主从配置,配置后主从可以进行读写分离,主节点可以进行写操作,从节点只能进行读操作
slaveof ip port
数据备份
bgsave #该命令在后台执行,进行持久化操作,不会影响客户端的链接 save #如果上述bgsave执行失败,可以使用save进行操作,但是会影响客户端的链接
日志和数据保存,先创建目录
mkdir -p /opt/redis/logs mkdir -p /opt/redis/data
配置修改:
loglevel debug #日志级别:默认为notice logfile /opt/redis/logs/redis.log #日志输出:默认为stdout dbfilename redis.rdb #默认为dump.rdb dir /opt/redis/data #默认为./
备份策略
save 60 1000
含义:
如上的设置,会在60s内、如果有1000个key发生改变就进行持久化,可设置多个save选项,默认持久化到dump.rdb。
文件追加(aof):append-only-file模式。Redis会将每个接收到的“写命令”通过write函数追加到appendonly.aof文件,重启Redis时通过该文件重建整个数据库。由于os内核会缓存write函数所做的“修改”,可以使用fsync函数指定写入到磁盘的方式。
appendonly yes #启动aof持久化方式 appendfsync always #对每条“写命令”立即写至磁盘 appendfsync everysec #默认:每秒写入一次,在性能和可靠性之间的平衡 appendfsync no #依赖于os,不指定写入时机
两种方式的比较:
快照方式:性能较好,但是快照间隔期间,如果宕机将造成数据丢失。
AOF模式:影响性能,不容易造成数据丢失。
如果Redis宕机:重启Redis即可,会自动使用redis.rdb、appendonly.aof恢复数据库。主从备份:从数据安全性角度考虑。
关闭快照功能。
同时设置主从服务器都为AOF模式。
说明:如果仅对Slave进行持久化设置,重启时,Slave自动和Master进行同步,全部数据丢失
4、Jedis连接问题
下载jidis,直接测试
出现 connection refused 问题,需要关闭linux 防火墙, ubuntuOS 查看防火墙状态:
sudo ufw status
然后关闭
sudo ufw disable
出现DENIED Redis is running in protected mode because protected mode is enabled问题;需要将redis.conf文件中要将protected-mode yes改为no
出现NOAUTH Authentication required 问题,由于自己开始启动时没有设置密码,后面又修改添加了密码,关闭时出现问题,使用kill强制结束进程,再启动OK
下一篇: Java基础学习1