复述,实现批量删除的三种方式

  

,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,复述,实现批量删除的三种方式

复述,实现批量删除:

1,访问复述,根目录,,cd/usr/地方/redis-2.8.19

2,登录复述:redis-cli - h 127.0.0.1 - p 6379(其中,127.0.0.1可以写成服务器的IP地址,6379为端口号)

3,查看所有关键值:钥匙*

4,删除指定索引的值:del键

5,清空整个复述,服务器的数据:flushall

6,清空当前库中的所有关键:flushdb

【第一种方式:

下面是批量删除以“key_”开头的所有复述,数据数量为100个

redis-cli - h (IP地址)- p 6379(端口号:6379)键key_ * | xargs redis-cli (- h (IP地址)- p 6379(端口号:6379))德尔=在[执行后返回的结果影响数量):(整数)100(数量100个]

【上述命令中DEL函数的具体用法】:

DEL键[键……)

删除给定的一个或多个关键。

不存在的钥匙会被忽略。

时间复杂度:

O (N), N为被删除的关键的数量。

删除单个字符串类型的关键,时间复杂度为O (1)。

删除单个列表,集合,有序集合或哈希表类型的关键,时间复杂度为O (M), M为以上数据结构内的元素数量。

返回值:

被删除关键的数量。

【举例说明】:

#删除单个关键   redis>集名称huangz   好吧      redis>德尔的名字   (整数)1      #删除一个不存在的关键   redis>存在手机   (整数)0      redis>德尔电话#失败,没有键被删除   (整数)0      #同时删除多个关键   redis>集名称“redis"   好吧      redis>设置类型“键-值store"   好吧      redis>设置网站“redis.com"   好吧      redis>德尔名称类型网站   (整数)3

【第二种方式:

第一种方式弊端:这样一个坏处每次都要建立一个连接,量小的话还可以接受,量大的话,效率不行。

通过内置的Lua解释器,可以使用EVAL命令对Lua脚本:

redis-cli - h (IP地址)- p 6379(端口号:6379)- EVAL“返回redis.call(& # 39;德尔# 39;,解压缩(redis.call(& # 39;键# 39;,ARGV [1]))),0 & # 39;体积:* & # 39;

【注】:但这种处理方式,量大的情况下,lua函数解压缩会出现问题,会报错误

& # 39;& # 39;& # 39;   (错误)错错误运行脚本(调用f_e177a091510d969af3b388ee986dbe6658df6b57): @user_script: 1:将user_script: 1:太多的结果   & # 39;& # 39;& # 39;

【第二种方式优化后】:

【注释】:首先定义一个数组密钥,里面存储了模式匹配的所有的以“卷:”的关键,然后对循环,每次处理5000个键,也就是说每次德尔5000个关键

redis-cli - h (IP地址)- p 6379(端口号:6379)- EVAL“本地键=redis.call(& # 39;键# 39;,ARGV [1])   因为我=1,#键,5000   做   redis.call(& # 39;德尔# 39;,解压缩(钥匙、我、数学。分钟(我+ 4999,#键)))   结束   返回# keys"0 & # 39;体积:* & # 39;

【第二种方式弊端】:

键操作在线上是禁止使用的!

复述是单线程的,如果量很大的话,钥匙是遍历键的,会导致阻塞,这样其他的客户端就没法连接了!

【第三种方式:

自从redis2.8以后就开始支持扫描命令,模式匹配可以采取下面的形式来批删除大量的关键

redis-cli——youpassowrd 0 - n - p 6379——扫描模式“卷:*“;| xargs - l 5000 redis-cli——youpassword 0 - n - p 6379 DEL

【结果】:

& # 39;& # 39;& # 39;/工作/app/复述/bin/redis-cli——youpassword 0 - n - p 6379——扫描模式“卷:*“;5000 | xargs - l/工作/app/复述/bin/redis-cli——youpassword 0 - n - p 6379德尔   (整数)5000   (整数)5000   (整数)5000   (整数)5000   (整数)5000   (整数)5000   (整数)5000   (整数)207   & # 39;& # 39;& # 39;

以上就是复述,实现批量删除的命令介绍的详细内容,更多请关注其它相关文章!

复述,实现批量删除的三种方式