本文主要是介绍redis5.0安装和开机启动,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一,添加用户,下载,授权,安装
groupadd -r redis && useradd -r -g redis -s /sbin/nologin -M redis
yum install wget gcc make -y
wget http://download.redis.io/releases/redis-5.0.7.tar.gz
tar -zvxf redis-5.0.7.tar.gz
mv /root/redis-5.0.7 /usr/local/redis
chown -R redis.redis /usr/local/redis
chmod 755 /usr/local/redis
cd /usr/local/redis
make
make PREFIX=/usr/local/redis install
二,配置文件
vim /usr/local/redis/redis.conf
1 设置后台方式启动
通过 /daemonize 查找到属性,默认是no,更改为yes即可。
2 设置日志文件
logfile = "/var/log/redis/redis.log"
创建日志文件夹和授权
mkdir /var/log/redis
chown -R redis.redis /var/log/redis
3 设置密码
requirepass 123456
三,复制客户端脚本到bin目录,客户启动。
cp /usr/local/redis/bin/redis-cli /usr/bin/redis-cli
四,启动和停止
启动:sudo -u redis /usr/local/redis/bin/redis-server /usr/local/redis/redis.conf
停止:sudo -u redis /usr/local/redis/bin/redis-cli -h 172.16.0.38 -p 6379 shutdown
五,测试连接
redis-cli -h 172.16.0.36 -p 6379 -a 123456
六,配置Redis开机启动
#创建服务文件
vim /usr/lib/systemd/system/redis.service
[Unit]
Description=Redis Server
After=network.target[Service]
User=redis
Group=redis
Type=forking
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/redis.conf
ExecStop=/usr/local/redis/bin/redis-cli -h 172.16.0.38 -p 6379 shutdown
Restart=always
PrivateTmp=true[Install]
WantedBy=multi-user.target
重新加载
systemctl daemon-reload
#设置Redis服务开机启动
systemctl enable redis
#启动Redis服务
systemctl start redis
systemctl status redis
systemctl stop redis
访问:redis-cli -h 172.16.0.38 -p 6379 -a 123456
故障
Job for redis.service failed because the control process exited with error code. See "systemctl status redis.service" and "journalctl -xe" for details.
日志文件是root 用户 和root 用户组,授权或删除
ll /var/log/redis/
七 redis使用
1 连接
无密码连接
连接redis
redis-cli -h 127.0.0.1 -p 6379[root@redis ~]# redis-cli
127.0.0.1:6379> ping
PONG127.0.0.1:6379> get key127.0.0.1:6379> info
带密码连接
第一种
redis-cli -h 127.0.0.1 -p 6379 -a password第二种
127.0.0.1:6379> AUTH password
OK
127.0.0.1:6379> set k1 v1
OK
关闭命令pkill redis kill
关闭前先执行bgsave
2 redis动态增加内存,动态配置,不需要重启
redis 127.0.0.1:6379> config get maxmemory
1) "maxmemory"
2) "3221225472"
redis 127.0.0.1:6379> config set maxmemory 4294967296
OK
redis 127.0.0.1:6379> config get maxmemory
1) "maxmemory"
2) "4294967296"
3 参数
redis 127.0.0.1:6379> config get *
CONFIG SET
CONFIG SET parameter value
CONFIG SET 命令可以动态地调整 Redis 服务器的配置(configuration)而无须重启。
你可以使用它修改配置参数,或者改变 Redis 的持久化(Persistence)方式。
CONFIG SET 可以修改的配置参数可以使用命令 CONFIG GET * 来列出,所有被 CONFIG SET 修改的配置参数都会立即生效。
4 rdb文件恢复
先停掉redis
find / -name dump.rdb
将dump.rdb文件复制到所在文件目录下
重启redis
配置文件设置
appendonly no
5 查看有多少个key
DBSIZE
查看某个Key是否存在
EXISTS k1
状态码:
0 表示这个key不存在
1 表示这个key存在
N 表示存在N个key
删除key
DEL k1
DEL k1 k2
状态码:
0 表示这个key不存在
1 表示这个key存在,并且删除成功了
N 表示N个key存在,并且删除成功了N个key
设置过期时间
EXPIRE k1 10
状态码:
0 这个key不存在
1 这个key存在,并且设置过期时间成功
6 RDB和AOF介绍
RDB:类似于快照的形式,当前内存里的状态持久化到硬盘里
优点:压缩格式/恢复速度快
缺点:不是实时的,可能会丢失数据,操作比较重
AOF:类似于mysql的binlog,可以设置为每秒/每次操作以追加的形式持久化
优点:安全,最多损失1秒的数据,可读
缺点:文件比较大,恢复速度慢
配置RDB
save 900 1
save 300 10
save 60 10000
dbfilename redis.rdb
dir /app/data/redis_6379/
RDB结论
1.没有配置save参数时,shutdown不会持久化保存
2.没有配置save参数时,可以手动执行bgsave触发持久化
3.在配置了save参数后,shutdown,kill,pkill都会自动触发bgsave
4.恢复的时候,rdb文件名要和配置文件里写的一样。
5.RDB高版本兼容低版本,低版本不兼容高版本。
AOF配置
appendonly yes
appendfilename "redis.aof"
appendfsync everysec
结论:
当aof和rdb同时存在时,重启redis会优先读取aof的内容。
aof和rdb实验
实验背景:
aof和rdb同时存在的时候,redis重启会读取哪一个数据?
实验步骤:
set k1 v1
set k2 v2
bgsave
RDB k1 k2
mv redis.rdb /opt/ flushall
set k3 v3
set k4 v4
AOF k3 k4
mv redis.aof /opt/pkill redis
rm -rf /data/redis_6379/*
mv /opt/redis.rdb .
mv /opt/redis.aof .redis-server /opt/redis_6379/conf/redis.conf
redis-cli
keys *
结论:
当aof和rdb同时存在时,重启redis会优先读取aof的内容。
如何选择是rdb还是aof
https://redis.io/topics/persistence
1.开启混合模式
2.开启aof
3.不开启rdb
4.rdb采用定时任务的方式定时备份
8 aof文件故障模拟实验结论
1.aof文件损坏之后,使用修复工具,一刀流,从aof文件出错的地方开始到最后全部删掉
2.任何操作之前,先备份数据
3.aof备份一般情况最多损失1秒的数据
9.实验:如果设置了过期时间,恢复数据会如何处理
1.aof文件会记录下过期的时间
2.恢复的时候会去对比记录的过期时间和当前时间,如果超过了,就删除key
3.key的过期时间不受备份恢复影响
禁用危险命令
rename-command CONFIG ""
rename-command KEYS ""
rename-command SHUTDOWN ""
rename-command FLUSHALL ""
rename-command DEL ""
rename-command FLUSHDB ""
7 应用场景
1.缓存-键过期时间把session会话存在redis,过期删除缓存用户信息,缓存Mysql部分数据,用户先访问redis,redis没有再访问mysql,然后回写给redis商城优惠卷过期时间
2.排行榜-列表&有序集合热度/点击数排行榜直播间礼物积分排行
3.计数器-天然支持计数器帖子浏览数视频播放数评论数点赞/踩
4.社交网络-集合粉丝共同好友 兴趣爱好标签
5.消息队列-发布订阅配合ELK缓存收集来的日志
多种数据结构
字符串,哈希,列表,集合,有序集合,地理位置
数据持久化
所有的数据都运行在内存中
支持2种格式持久化数据AOF RDB AOF&RDB
自带多种高可用架构
主从
哨兵
集群
redis官网
https://redis.io/
版本选择
2.x very old
3.x redis-cluster
4.x 混合持久化
5.x 新增加了流处理类型 最新稳定版
这篇关于redis5.0安装和开机启动的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!