Redis查找并删除key

redis安装在IP为x.x.x.x的服务器上

redis 安装

第一步,安装编译工具及库文件。

命令:yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel

第二步,下载redis安装包。

命令:cd /usr/local/src

wget http://download.redis.io/releases/redis-4.0.10.tar.gz

第三步,解压redis安装包。

命令: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 方法。

1)KEYS命令

KEYS命令用于查找符合给定模式的所有key。

查找所有以yyyyy:开头的key

命令:KEYS "yyyyy:*"

注意:KEYS命令具有阻塞特性,若匹配的key数量过多,则会占用很多服务器资源,导致Redis性能下降。

2)SCAN命令

为了避免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命令更加高效。

3)TYPE命令

若想要查找指定类型的key,则可以使用TYPE命令。

语法:TYPE key

查找key为yyyyy:123的数据类型

命令:TYPE yyyyy:123

4)EXISTS命令

若只需要判断某个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即可。

相关推荐
Ribou26 分钟前
Ubuntu 24.04.2安装k8s 1.33.4 配置cilium
linux·ubuntu·kubernetes
tan180°1 小时前
Boost搜索引擎 网络库与前端(4)
linux·网络·c++·搜索引擎
小小菜鸡ing1 小时前
pymysql
java·服务器·数据库
Mr. Cao code2 小时前
Docker:颠覆传统虚拟化的轻量级革命
linux·运维·ubuntu·docker·容器
抓饼先生2 小时前
Linux control group笔记
linux·笔记·bash
boonya2 小时前
Redis核心原理与面试问题解析
数据库·redis·面试
上官浩仁3 小时前
springboot redisson 缓存入门与实战
spring boot·redis·缓存
挺6的还3 小时前
25.线程概念和控制(二)
linux
wanhengidc3 小时前
云手机运行流畅,秒开不卡顿
运维·网络·科技·游戏·智能手机
您的通讯录好友3 小时前
conda环境导出
linux·windows·conda