Linux终端/python 清空redis缓存

一、问题描述

  • 目前负责的一个项目用到mysql、redis、clickhouse等数据库。在查询数据时,系统做了缓存,每次优先从缓存取,若redis没有再进入mysql查询,以缓解频繁访问mysql数据库的问题。
  • 在开发过程中也会存在一个问题,已修改MySQL、PostgreSQL中数据,但系统内没有变化,接口也为原来数据;更新版本过程中 初始化MySQL、PostgreSQL等数据库后,访问系统仍为原来数据、出现bug……
  • 顺着执行流程一步步去追踪查找,结合日志,发现取数据的时候走了redis缓存,数据没有更新;重跑数据的时候,系统里面没有值,也是走了redis缓存。
  • 因此要在合适的时候 清空redis缓存数据。

二、解决方案

2.1 在Linux终端或者Xshell端清空redis

启动redis服务后,可输入以下命令清空redis

redis-cli -a password flushall

或者

redis-cli
auth xxx
flushall

在这里插入图片描述

2.2 python清空redis

import os
os.system('redis-cli -p %s -a %s flushall' % (redis_port, redis_pass))

三、知识补充

3.1 启动、关闭、查看redis

#启动redis,前面替换为自己的路径
/usr/local/redis/redis-server /usr/local/redis/redis.conf

#关闭redis。也可使用kill -9 Redis_PID(不推荐 可能造成Redis持久化丢失)
redis-cli shutdown
redis-cli -a password shutdown    #如果设置了密码 以此命令关闭redis

#查看Redis进程状态
ps -ef | grep redis       

3.2 常见redis命令

select 1     //切换数据库。切换到1号库:select 目标库下标。redis默认有16个库,下标从0开始,默认在0号库
dbsize       //查看当前数据库大小,也就是key的数量(dbsize)
keys *       //查看当前数据库所有的键
flushdb      //清空当前数据库
flushall     //清空所有数据库
#基本命令
set key value
get key
keys *               //获取所有的键;
exists key           //判断键是否存在
type key
del key
unlink key                //选择非阻塞删除,刚开始没有删除,后续才会删除
move key db               //将当前数据库的 key 移动到给定的数据库db当中
rename key newkey         //修改 key 的名称;
expire key1 seconds       //几秒后删除/过期 
ttl key                   //查看还有多久删除,-2表示已经过期,-1表示永不过期

flushall                  //清空所有(库的)Redis数据  
flushdb                   //清除当前选择数据库的所有keys        
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值