redis5.0安装和开机启动

2024-03-13 09:48
文章标签 安装 启动 开机 redis5.0

本文主要是介绍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安装和开机启动的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/804443

相关文章

Python中win32包的安装及常见用途介绍

《Python中win32包的安装及常见用途介绍》在Windows环境下,PythonWin32模块通常随Python安装包一起安装,:本文主要介绍Python中win32包的安装及常见用途的相关... 目录前言主要组件安装方法常见用途1. 操作Windows注册表2. 操作Windows服务3. 窗口操作

gitlab安装及邮箱配置和常用使用方式

《gitlab安装及邮箱配置和常用使用方式》:本文主要介绍gitlab安装及邮箱配置和常用使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装GitLab2.配置GitLab邮件服务3.GitLab的账号注册邮箱验证及其分组4.gitlab分支和标签的

MySQL MCP 服务器安装配置最佳实践

《MySQLMCP服务器安装配置最佳实践》本文介绍MySQLMCP服务器的安装配置方法,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下... 目录mysql MCP 服务器安装配置指南简介功能特点安装方法数据库配置使用MCP Inspector进行调试开发指

nginx启动命令和默认配置文件的使用

《nginx启动命令和默认配置文件的使用》:本文主要介绍nginx启动命令和默认配置文件的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录常见命令nginx.conf配置文件location匹配规则图片服务器总结常见命令# 默认配置文件启动./nginx

在Windows上使用qemu安装ubuntu24.04服务器的详细指南

《在Windows上使用qemu安装ubuntu24.04服务器的详细指南》本文介绍了在Windows上使用QEMU安装Ubuntu24.04的全流程:安装QEMU、准备ISO镜像、创建虚拟磁盘、配置... 目录1. 安装QEMU环境2. 准备Ubuntu 24.04镜像3. 启动QEMU安装Ubuntu4

Python UV安装、升级、卸载详细步骤记录

《PythonUV安装、升级、卸载详细步骤记录》:本文主要介绍PythonUV安装、升级、卸载的详细步骤,uv是Astral推出的下一代Python包与项目管理器,主打单一可执行文件、极致性能... 目录安装检查升级设置自动补全卸载UV 命令总结 官方文档详见:https://docs.astral.sh/

Nexus安装和启动的实现教程

《Nexus安装和启动的实现教程》:本文主要介绍Nexus安装和启动的实现教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Nexus下载二、Nexus安装和启动三、关闭Nexus总结一、Nexus下载官方下载链接:DownloadWindows系统根

Java中实现线程的创建和启动的方法

《Java中实现线程的创建和启动的方法》在Java中,实现线程的创建和启动是两个不同但紧密相关的概念,理解为什么要启动线程(调用start()方法)而非直接调用run()方法,是掌握多线程编程的关键,... 目录1. 线程的生命周期2. start() vs run() 的本质区别3. 为什么必须通过 st

Java SWT库详解与安装指南(最新推荐)

《JavaSWT库详解与安装指南(最新推荐)》:本文主要介绍JavaSWT库详解与安装指南,在本章中,我们介绍了如何下载、安装SWTJAR包,并详述了在Eclipse以及命令行环境中配置Java... 目录1. Java SWT类库概述2. SWT与AWT和Swing的区别2.1 历史背景与设计理念2.1.

Oracle修改端口号之后无法启动的解决方案

《Oracle修改端口号之后无法启动的解决方案》Oracle数据库更改端口后出现监听器无法启动的问题确实较为常见,但并非必然发生,这一问题通常源于​​配置错误或环境冲突​​,而非端口修改本身,以下是系... 目录一、问题根源分析​​​二、保姆级解决方案​​​​步骤1:修正监听器配置文件 (listener.