Redis查找并删除key-CSDN博客
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
redis安装在IP为x.x.x.x的服务器上
redis安装
第一步安装编译工具及库文件。
命令yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
命令cd /usr/local/src
wget http://download.redis.io/releases/redis-4.0.10.tar.gz
命令tar zxvf redis-4.0.10.tar.gz -C /usr/local
第四步编译安装redis。
命令cd /usr/local/redis-4.0.10
make
cd /usr/local/redis-4.0.10/src
make install
redis配置
第一步在/usr/local中新建/redis/etc文件夹并在将/usr/local/redis-4.0.10文件夹中的conf配置文件复制粘贴到/usr/local/redis/etc。
命令mkdir -p /usr/local/redis/etc
cp /usr/local/redis-4.0.10/redis.conf /usr/local/redis/etc
第二步在/usr/local中新建/redis/bin、/redis/db和/redis/logs文件夹/usr/local/redis-4.0.10/src文件夹中的常用命令复制粘贴到/usr/local/redis/bin。
命令mkdir -p /usr/local/redis/bin
mkdir -p /usr/local/redis/db
mkdir -p /usr/local/redis/logs
cd /usr/local/redis-4.0.10/src
cp mkreleasdhdr.sh redis-benchmark redis-check-aof redis-check-dump redis-cli redis-server /usr/local/redis/bin
第三步编辑配置/etc/sysctl.conf文件。
配置sysctl.conf文件的内核参数否则redis脚本在重启或停止redis时将会报错并且不能自动在停止服务前同步数据到磁盘上。
命令vim /etc/sysctl.conf
在最后一行添加下面代码
vm.overcommit_memory = 1
# 使设置立即生效
命令sysctl -p
第四步redis开启外部访问权限的方法。
编辑配置/usr/local/redis/etc/redis.conf文件做以下几处修改
“bind 127.0.0.1”为“bind 0.0.0.0”
“daemonize no”改为“daemonize yes”
“requirepass foobared”改为“requirepass 123456”
“dir ./”改为“dir /usr/local/redis/db”
“logfile ”改为“logfile /usr/local/redis/logs/redis.log”保存并重启redis。
redis启动、关闭服务
说明前台启动redis-server 后台启动redis-server &
第一步前台启动redis服务。
命令/usr/local/redis/bin/redis-server
注意执行完该命令后如果Lunix关闭当前会话则redis服务也随即关闭。正常情况下启动redis服务需要从后台启动并且指定启动配置文件。
第二步后台启动redis服务。
再次启动redis服务并指定启动服务配置文件。
命令cd /usr/local/redis/bin
redis-server /usr/local/redis/etc/redis.conf
# 结果第一行最后面显示redis端口
ps -ef | grep redis
# 结果第一行最后面显示redis进程号
netstat -nap | grep 6379
服务端启动成功后启动redis 客户端查看端口号。
命令redis-cli
auth 123456
set [key] [value]
get [key]
exit
netstat -nap | grep 6379
第三步外部IP地址访问redis。
命令ip a
redis-cli -h x1.x1.x1.x1 -p 6379
auth "123456"
keys *
set [key] [value]
get [key]
exit
第四步前台和后台关闭redis服务。
命令pkill redis-server
/usr/local/redis/bin/redis-cli shutdown
netstat -nap | grep 6379
Redis查找并删除key
第一步Redis查找key方法。
1KEYS命令
KEYS命令用于查找符合给定模式的所有key。
# 查找所有以yyyyy:开头的key
命令KEYS "yyyyy:*"
注意KEYS命令具有阻塞特性若匹配的key数量过多则会占用很多服务器资源导致Redis性能下降。
2SCAN命令
为了避免KEYS命令的阻塞特性Redis提供了SCAN命令。SCAN命令可以逐步遍历数据库中所有的key每次只返回一小部分数据以避免占用服务器过多资源。
语法SCAN cursor [MATCH pattern] [COUNT count]
注释
cursor是一个游标用于记录当前遍历的进度
MATCH和COUNT参数用于指定匹配模式和返回数量。
# 查找所有以yyyyy:开头的key并每次返回10个数据
命令SCAN 0 MATCH "yyyyy:*" COUNT 10
注意对于相对较小的Redis数据库KEYS命令可能比SCAN命令更加高效。
3TYPE命令
若想要查找指定类型的key则可以使用TYPE命令。
语法TYPE key
# 查找key为yyyyy:123的数据类型
命令TYPE yyyyy:123
4EXISTS命令
若只需要判断某个key是否存在则可以使用EXISTS命令。
语法EXISTS key
# 判断是否存在key为user:123的数据
命令EXISTS yyyyy:123
第二步Redis删除key。
1单独删除指定的key
命令redis-cli
auth "123456"
keys *
# [key]即为实际要删除的key
del [key]
exit
2根据通配符进行批量删除
命令redis-cli -a 123456 KEYS "yyyyy:*" | xargs redis-cli -a 123456 del
注意此方法不需要登录客户端。
若结果显示“(error) ERR wrong number of arguments for 'del' command”则说明命令不存在或者命令参数的个数不对。
解决方法更改keys值重新查询得到指定的keys值之后del即可。