一、概念
Redis是一个开源的内存数据结构存储系统,它可以用作数据库、缓存和消息中间件。Redis支持多种数据结构,如字符串、哈希表、列表、集合、有序集合等。Redis的特点是数据存储在内存中,因此读写速度非常快,同时也支持数据持久化到磁盘上,以保证数据的安全性。Redis还提供了丰富的命令和API,可以方便地进行数据操作和管理。由于其高性能、可扩展性和灵活性,Redis被广泛应用于Web应用程序、分布式系统、实时数据处理等领域。
二、工作原理
1. 客户端向Redis发送请求,请求可以是读取、写入、删除等操作。
2. Redis接收到请求后,根据请求类型和键值对的信息,进行相应的操作。
3. 如果请求需要修改数据,Redis会将修改操作记录在内存中的数据结构中,同时异步地将修改操作写入磁盘中的日志文件中,以保证数据的持久性。
4. 如果请求需要读取数据,Redis会先在内存中查找数据,如果找到则直接返回给客户端,如果没有找到则从磁盘中的数据文件中读取数据,并将数据加载到内存中,以便下次更快地访问。
5. Redis还支持一些高级功能,如发布/订阅、事务、Lua脚本等,这些功能都是基于Redis内置的命令实现的。
三、基本配置
1、安装
使用yum安装
yum -y install redis
2、配置文件
/etc/redis.conf 主配置文件路径
寻找并取消注释掉 requirepass 这一行。
在 requirepass 行后面,输入您想要设置的密码
它表示 Redis 不会将写操作追加到磁盘上的日志文件中
在生产环境中需要将这条配置项修改为YES
将bind 127.0.0.1(本地回环地址)修改为0.0.0.0(表示所有人都可以登录)
3、登录redis
systemctl start redis 启动redis服务
redis-cli -h 主机名或IP -p 端口 -a 密码 远程登录命令
redis-cli redis 本地登录命令
登录redis服务后需要输入AUTH 密码 验证身份
4、常用命令
SET 命令用于将指定的 Key 设定为对应的 Value 值。
GET 命令用于获取指定 Key 的 Value 值。
EXISTS 如果键存在,则返回 1,否则返回 0。
DEL 命令用于删除指定的 Key 及其对应的 Value 值。
KEYS 命令用于查找符合指定 pattern 的所有 Key
INCR 用于将指定的key中存储的整数值加1,如果key不存在,则会先将其设置为0再执行加1操作。
DECR 用于将指定的key中存储的整数值减1,如果key不存在,则会先将其设置为0再执行减1操作。
EXPIRE 命令用于设置指定 Key 的过期时间
TTL 命令用于获取指定 Key 的剩余过期时间
设置名为syh的键 60秒后自动删除
HASH 命令用于在指定 Key 中设置多个字段的值,也可用于获取指定 Key 中所有字段及其值。
LIST 命令用于在指定 Key 的列表中插入、获取、删除值。
lpush syh "test 3"
将值为 "syh 3" 的元素插入到名为 "syh" 的列表的左侧,并将其设置为列表的第一个元素。
lpush syh "test 2"
将值为 "syh 2" 的元素插入到名为 "syh" 的列表的左侧,并将其设置为列表的第二个元素。
lpush syh "test 1"
将值为 "syh 1" 的元素插入到名为 "syh" 的列表的左侧,并将其设置为列表的第三个元素。
lrange syh 0 -1
获取名为 "syh" 的列表中所有元素,从第一个元素到最后一个元素
lpop syh
从名为 "tasks" 的列表的左侧弹出第一个元素,并返回该元素的值,即 "syh1"
可以看到test1的元素已经没有了
四、redis持久化配置
1、RDB持久化配置
将 Redis 在内存中的数据定期 dump 到硬盘上的一个快照文件,用于进行备份和恢复。其优点是安全,可靠且性能高,缺点是在最近一次 RDB 文件被 dump 之后的数据丢失风险较高。
在多长时间后,如果有多少个键发生更改,Redis 执行写操作
save 900 1 每900秒同步一次数据到磁盘中
save 300 10 每300秒同步十次数据到磁盘中
save 60 10000 每60秒同步一万次数据到磁盘中
dbfilename dump.rdb 这个是存储持久化数据的文件名
dir /var/lib/redis 这个是持久化数据文件的路径
2、AOF持久化配置
Redis 的 AOF 持久化是指将 Redis 服务器执行的每个写入操作都记录在追加日志文件中,这样可以确保即使服务器发生故障,也能够保证最新的数据不会丢失。Redis 的 AOF 持久化有以下两种方式:
①、always:每次发生写入操作时都会执行同步,会影响服务器的写入性能,但数据保护程度较高。
②、everysec:每秒执行一次同步操作,折中选项,既保证了写入性能又保障了数据安全。
修改配置文件
appendonly yes 开启AOF持久化功能
appendonly.aof 设置AOF日志文件的名称
dir /path/to/appendonly/ 设置AOF日志的存放目录
appendfsync everysec 设定数据同步方式,always 表示每次操作都同步,everysec 表示每秒同步一次