导航:首页 > 程序命令 > 清除redis缓存命令

清除redis缓存命令

发布时间:2024-07-19 07:06:59

㈠ windows怎么清空redis缓存

1. 加内存
2. 缩短(或设置)数据过期时间,以释放内存
3. redis集群

㈡ 在不影响性能的情况下,怎么快速批量删除redis数据

业务场景:redis数据切换到Oracle,取消持久化,redis只做缓存

具体需求:从redis从库里获得了400w个无过期时间的hashkey,需要在主库中将其删除

矛盾点:
1.如果直接批量删除会导致redis拥塞,影响正常业务
2.如果每删除一个key,sleep50ms,不会影响业务,但是根据经验要跑两天

最终问题:在不影响性能的情况下,怎么快速批量删除redis数据?


Redis删key删得飞快,400w也不在话下。我怀疑其实瓶颈在于网络。

如果你是一个一个key删的,每次发送一个命令都会导致客户端等待redis的回复,浪费了大量网络带宽。

可以试试用pipelining/transactions。在不饱和redis端网络带宽的前提下,以最大速度发送命令,然后一次执行。

如果这都不行的话,可以写一个Lua脚本,识别并删除无用的key,发送到redis用eval执行。这样应该不会阻塞网络。

如果这样还是影响业务的话。。终极解决方案是创建一个master/slave,在slave上删除key,而将请求用master处理。删完key之后把slave晋升成master,再将请求转向它。

2014年07月24日回答


滕亦飞1.3k

尝试下 redis 的 eval 命令。

例如删除 old-fashioned: 开头的所有 KEY

eval "redis.call('del', unpack(redis.call('keys','old-fashioned:*')))" 0

如果单次删除性能消耗大,可以考虑分批删除。

㈢ 深入了解Redis操作五大数据类型常用命令

我们知道Redis默认有16个数据库,默认是第0个数据库,那么如果在需要对数据库进行切换的时候,我们就可以使用下面这个命令:


使用如下命令进行切换

如果想要清除指定某一个数据库的数据


清除所有数据库的数据

接下来这个命令应该是最常用的了

平常在开发中,我们还需要经常对key进行判断,判断其是否存在

因为我们设置的缓存数据一般都不能是永久的,这个时候就需要我们在存储数据的时候,就为其设置过期时间。

string类型是Redis中五大基本数据类型之一,这也是最常使用到的一个数据类型,所有很多小伙伴们对Redis的认识和操作就仅仅的停留在了对Redis的操作层面,但是你是否知道string类型中的相关命令,还是有非常多实用的

接下来先看一下对string类型进行基本存储和获取的命令。

如果我们存储的string中的内容是数字的话,我们也可以对其进行增或减操作,Redis可以自动的对字符串进行相关的操作。实现的命令如下:

使用msetnx时,同时设置一个或多个 key-value 对,当且仅当所有给定 key都不存在时才成立。

getset命令从字面意思就可以看出来,他的作用是先get再set。


总结string类似的使用场景:

在使用list类型进行存取的时候,有两个命令需要进行区分:

注意:只有pop和push才分左右,其他的l都是list的意思

总结:

总结set集合一般用于元素的不重复的场景,比如抽奖系统,轮播等场景下

在使用hash集合的时候,要注意,hash其实就是一个Map集合,key-map的时候,值是一个map集合的形式进行存储的,也和Java中的hashmap有一个类似。


HVALS获取所有的value,HKEYS获取所有的key,HGETALL获取所有的键值


总结:

hash可以用于存储变更的数据,比如user,name,age等,尤其是用户信息之类的,hash更加适合用于对象的存储,string更加适合用于字符串的存储。

在set集合的基础上增加一个序列号,来进行排序


ZRANGEBYSCORE使用语法


总结


以上是在对五种数据类型进行存取时的一些常用命令操作。关于其他的命令使用,小伙伴们在用到的时候可以直接入官网查看就可以了。

python怎样清除redis缓存

想要查看一个db下有多少key,在Redis-cli中输入 keys * 即可
如果想删除某个key 可以使用del 命令 例如: del key delkey(你要删除的key的名称)
那么Python如何来查看呢?
[cpp] view plain
# coding=utf-8
'''
Created on 2015-9-8

@author: kwsy
'''
import redis

pool=redis.ConnectionPool(host='192.168.1.126',port=6379,db=0)
r = redis.StrictRedis(connection_pool=pool)

keys = r.keys()
print type(keys)
print keys

keys的type是 list ,所有的key将存入这个list作为结果返回
如果想返回特定形式的key,可以在keys()函数中添加参数,例如keys = r.keys("finger*") 那么将只返回以finger开头的key
key的删除也非常简单
[cpp] view plain
# coding=utf-8
'''
Created on 2015-9-8

@author: kwsy
'''
import redis

pool=redis.ConnectionPool(host='192.168.1.126',port=6379,db=0)
r = redis.StrictRedis(connection_pool=pool)
r.delete("del1","del2")

我这里是同时删掉两个key

阅读全文

与清除redis缓存命令相关的资料

热点内容
安卓手机如何用谷歌支付 浏览:282
安卓怎么刷装备 浏览:523
程序员架构师的工作 浏览:145
优摩手环用的什么app 浏览:703
安卓点点怎么关闭 浏览:183
公考培训系统源码 浏览:629
梅州离东莞源码 浏览:382
09年加密软件排行榜 浏览:687
javakey值 浏览:613
PDF政府报告2016 浏览:1000
国内小孩编程加盟前景 浏览:959
stc单片机安全 浏览:537
云邮箱服务器端口 浏览:489
文选编译与经典重构 浏览:591
精灵部落服务器地址 浏览:962
mc服务器和房间有什么分别 浏览:878
db服务器什么系统 浏览:606
分时涨停密码源码用法 浏览:897
安卓卸载命令 浏览:286
认证的app对自己有什么影响 浏览:391