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快照持久化方式
- 手动save命令
save
-
手动bgsave命令
-
通过配置自动触发
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)恢复数据时时间要比快照模式慢很多。