Redis是一种高性能的Key-Value存储系统,可以用于多种数据结构,如字符串、哈希、列表等,还支持各种操作数据结构命令。Redis的使用中可能要清理不需要数据来增加冗余空间提高系统性能。下面华纳云总结了Redis相关的集中快捷清理数据的方式。
在分享Redis清理数据快捷方式前,要提醒大家需备份好重要信息。可以使用Redis的RDB备份,RDB是快照备份把内存中数据集快照写入磁盘一个文件中。编辑Redis配置文件一般位于/etc/redis/redis.conf,设置RDB备份的频率和文件名。如:
save 900 1
save 300 10
save 60 10000
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir /var/lib/redis/
其中900秒内至少一个键被修改时进行一次备份,300秒内至少有10个键修改时备份一次,60秒内至少有10000个键被修改时备份一次。启用RDB文件压缩和校验和。备份文件名称为dump.rdb,存储在/var/lib/redis/目录下。
还可以用rediscli工具连接redis服务器,执行BGSAVE命令该命令会异步保存数据到RDB文件中:
redis-cli BGSAVE
备份完成后可以查看redis日志或执行LASTSAVE命令去确认备份时间。
AOF是redis另外一种持久化方式记录每次写操作命令,编辑Redis配置文件启用AOF持久化:
appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
还可以用外部备份工具。
备份好数据后就可以快速清理数据,FLUSHDB命令是用来清空当前数据库中的全部数据,先连接到redis服务器,使用redis-cli:
redis-cli -h host -p port
host和port是redis服务器的地址和端口。本地默认使用端口6379可以直接输入redis-cli。再执行FLUSHDB命令就可以清空当前数据库中全部键值对数据。
还可以用FLUSHALL命令来情况数据库中全部数据,先使用redis-cli工具连接redis服务器。再执行FLUSHALL命令redis中全部数据库清空。
还可以使用DEL命令,只需要删除特定键值对数据时用DEL命令,使用redis-cli工具连接redis服务器,执行:
DEL key_name
以上命令会把制定键及其对应数据从数据库中删除。数据库中有一个键user-info的键值对,执行DEL user-info后该键值对就会被删除。
UNLINK命令也可删除指定键,但它是在后台异步执行删除操作,适用于删除大型数据对象,避免阻塞主线程。先连接redis服务器执行:
UNLINK key_name
可以删除放入后台队列中异步执行。如果要删除存储量较大的数据,可以,使用UNLINK big_data_key可以避免在删除过程中对其他操作造成延迟。