当前位置: 首页 > news >正文

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即可。

相关文章:

  • Flink日志收集到数据库/kafka
  • hive和presto的求数组长度函数区别及注意事项
  • 作业来了~~~
  • Linux的权限管理操作
  • RabbitMQ中的核心概念和交换机类型
  • Windows 的 PowerShell 提供了哪些命令
  • ios safari 正则兼容问题
  • vim常用命令
  • k8s 实战 常见异常事件 event 及解决方案分享
  • 059:mapboxGL监听键盘事件,通过eastTo控制左右旋转
  • 解决方法:从客户端(---<A href=“http://l...“)中检测到有潜在危险的 Request.Form 值。
  • 前端--性能优化【上篇】--网络优化与页面渲染优化
  • Android之播放本地视频和Url视频方法
  • Kotlin中的选择结构语句
  • BC v1.2充电规范
  • 缩短cin时间
  • 【Linux】进程概念与进程状态
  • C进阶-语言文件操作
  • 购药不烦恼:线上购药小程序的快捷方式
  • uniapp(uncloud) 使用生态开发接口详情2(使用 schema创建数据, schema2code创建页面, iconfont 引入项目)
  • 美国季度GDP时隔三年再现负增长,特朗普政府关税政策对美国经济负面影响或将持续
  • 近七成科创板公司2024年营收增长,285家营收创历史新高
  • 内蒙古公开宣判144件毁林毁草刑案,单起非法占用林地逾250亩
  • 水利部将联合最高检开展黄河流域水生态保护专项行动
  • 移动互联网未成年人模式正式发布
  • 2025年“投资新余•上海行”钢铁产业“双招双引”推介会成功举行