Redis2

本文详细介绍了Redis的基本命令,包括对Key、数据库、String、Hash、List和Set的操作。同时,深入探讨了Redis的持久化机制,包括RDB快照和AOF日志追加两种方式。RDB在数据恢复时速度快但可能丢失数据,而AOF能更好地保护数据且支持秒级数据丢失,但文件体积较大,恢复速度较慢。通过对Redis配置的调整,可以实现不同级别的数据安全性和性能平衡。
摘要由CSDN通过智能技术生成

Redis简单的命令

对Key操作的命令

keys *: 查询所有的key;
del key....:删除指定的key
expire key seconds: 为指定的key设置过期时间单位为秒
ttl key: 查询指定key的存活时间

对数据库操作的命令

flushdb: 清空当前数据库中的数据。
select index: 选择数据库 
flushall: 清空所有数据库中的数据


String字符串类型(Value值为字符串类型)

set key value: 把字符串的value存放到对应的key上。
get key: 根据指定的key获取对应字符串的value
mset key value key value key value....: 一次存放多个字符串的value到相应的key上
mget key key...: 根据指定的多个key获取对应的字符串的value
setnx key value: 把指定的value存放到对应的key上,如果对应的key已经存在,则不存储。
如果不存在则存储。 返回0或者1
incr key: 为指定的key的value值进行递增。应用场景:点赞 收餐  转发等
decr key: 递减



Hash类型(Value值为Hash类型)

hset key field value: 存放一个指定key的field-value的数据库
hget key field:获取指定key的field字段对应的value值。
hkeys key: 获取指定key的所有field字段名
hvals key: 获取指定key的所有value值。
hgetall key: 获取指定key的所有的field和value值。
HDEL key field: 删除指定key的field字段。


List 队列类型

lpush: 将一个或多个值 value 插入到列表 key 的表头.
lpop: 移除并返回列表 key 的头元素。
lrange: 返回列表 key 中指定区间内的元素,区间以偏移量 start 和 stop 指定。


set集合

spop key: 移除并返回集合中的一个随机元素。
smove source destint member: 
smembers key:获取指定key下的所有的元素
sinter key key ...:求所有集合的交集。

Redis的持久化方式
持久化:把内存中的数据库保存到磁盘上。防止数据的丢失。
redis支持的持久化方式两种:
(1)RDB:快照,其实就是把数据以快照的形式保存在磁盘上,什么是快照呢,你可以理解成把当前时刻的数据拍成一张照片保存下来。
(2)AOF:日志追加,记录服务器接受的每个写入操作,当服务器启动时再次加载该日志,会把日志中的命令重新执行一遍。

2. RDB快照持久化方式

  1. 手动save命令
save
  •  
  1. 手动bgsave命令

  2. 通过配置自动触发

save命令:
①save使用:在Redis命令行中输入save持久化命令,可以在Redis的bin文件夹中发现一个dump.rdb文件。
②如果想更改Redis的数据备份文件生成位置,可以通过修改配置文件实现。
在这里插入图片描述

 

bgsave命令:
执行该命令时,Redis会在后台异步进行快照操作,快照同时还可以响应客户端请求。具体流程如下:

bgsave自动触发具体流程:
①修改redis.conf配置文件。

这里的save 30 1:指的是每30秒内,如果发生一次修改就进行bgsave。
这里可以任意修改数值。
②添加数据,测试是否会自动生成RDB文件,例如这里修改的save 30 1,对Redis数据库修改过一次后,等候30秒,去查看Redis的数据备份文件目录,如果出现了dump.rdb,那么恭喜你,备份成功!

③如何测试备份文件是否真的备份了呢?我们可以在备份完成后,清空Redis数据库并关闭Redis数据库,当我们再次使用redis -server redis.conf以及redis-cli命令启动Redis时,我们会发现Redis自动读取了数据库备份文件,此时证明我们备份成功!

④但是,每次save命令执行完成后如果存在老的RDB文件,就把出现新的RDB文件替换旧的RDB文件的情况。如果我们的客户端数据是几万或者是几十万,那么这种方式显然不可取的。
 

RDB的优缺点


优点:
(1)RDB文件紧凑,全量备份,非常适合用于进行备份和灾难恢复。
(2)生成RDB文件的时候,redis主进程会fork()一个子进程来处理所有保存工作,主进程不需要进行任何磁盘IO操作。
(3)RDB 在恢复大数据集时的速度比 AOF 的恢复速度要快。
缺点:
快照持久化期间修改的数据不会被保存,可能丢失数据。数据完整性比较差。

3. AOF 日志追加持久化方式
3.1 什么是AOF
提供一种更加高效的方式AOF,工作机制很简单,redis会将每一个收到的写命令都通过write函数追加到文件中。通俗的理解就是日志记录。

3. AOF 日志追加持久化方式

3.1 什么是AOF

提供一种更加高效的方式AOF,工作机制很简单,redis会将每一个收到的写命令都通过write函数追加到文件中。通俗的理解就是日志记录。

在这里插入图片描述

3.2 AOF的触发模式

3.2.1 具体流程

①先修改redis.conf配置文件,将appendonly no修改成yes
在这里插入图片描述
②开启第一个,把第二个注释掉。
在这里插入图片描述

3.3 AOF的优缺点

优点:

(1)AOF可以更好的保护数据不丢失,一般AOF会每隔1秒,通过一个后台线程执行一次fsync操作,最多丢失1秒钟的数据。
(2)AOF日志文件没有任何磁盘寻址的开销,写入性能非常高,文件不容易破损。
(3)AOF日志文件即使过大的时候,出现后台重写操作,也不会影响客户端的读写。

缺点:

(1)对于同一份数据来说,AOF日志文件通常比RDB数据快照文件更大.
(2)恢复数据时时间要比快照模式慢很多。

 

3.2 AOF的触发模式
3.2.1 具体流程
①先修改redis.conf配置文件,将appendonly no修改成yes

②开启第一个,把第二个注释掉。


3.3 AOF的优缺点

3. AOF 日志追加持久化方式

3.1 什么是AOF

提供一种更加高效的方式AOF,工作机制很简单,redis会将每一个收到的写命令都通过write函数追加到文件中。通俗的理解就是日志记录。

在这里插入图片描述

3.2 AOF的触发模式

3.2.1 具体流程

①先修改redis.conf配置文件,将appendonly no修改成yes
在这里插入图片描述
②开启第一个,把第二个注释掉。
在这里插入图片描述

3.3 AOF的优缺点

优点:

(1)AOF可以更好的保护数据不丢失,一般AOF会每隔1秒,通过一个后台线程执行一次fsync操作,最多丢失1秒钟的数据。
(2)AOF日志文件没有任何磁盘寻址的开销,写入性能非常高,文件不容易破损。
(3)AOF日志文件即使过大的时候,出现后台重写操作,也不会影响客户端的读写。

缺点:

(1)对于同一份数据来说,AOF日志文件通常比RDB数据快照文件更大.
(2)恢复数据时时间要比快照模式慢很多。

优点:

(1)AOF可以更好的保护数据不丢失,一般AOF会每隔1秒,通过一个后台线程执行一次fsync操作,最多丢失1秒钟的数据。
(2)AOF日志文件没有任何磁盘寻址的开销,写入性能非常高,文件不容易破损。
(3)AOF日志文件即使过大的时候,出现后台重写操作,也不会影响客户端的读写。

缺点:

(1)对于同一份数据来说,AOF日志文件通常比RDB数据快照文件更大.
(2)恢复数据时时间要比快照模式慢很多。

 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值