redis禁止几个危险命令的方法

这几天客户一直给我反映一个问题,那就是他的缓存服务器redis每天会清理库,很纳闷,我配置的redis一般保持的默认,不应该会每天去清理库的,感觉应该还是他的程序上有点问题吧。

不过,不管程序问题还是配置问题,我想到就是可以吧清库的命令禁掉,这样即使他程序要去清理也是没办法的,于是就百度了一下,看到所有相关的文档都是一个人写的,就是在redis.conf中使用rename-conmand

rename-command FLUSHALL ""
rename-command FLUSHDB ""
rename-command KEYS ""

完了,之后我就去重启redis,以为OK了,仔细看了redis的日志,发现有问题。

Unknown command ‘flushall‘ reading the append only file

这是啥问题,直接百度,根本没有这个问题的解答,仔细看append only这个,感觉在哪见过,于是到redis.conf文件中找,果然在里面,又到官网看了这个参数的意思。

############################## APPEND ONLY MODE ###############################

# 默认情况下,Redis是异步的把数据导出到磁盘上。这种模式在很多应用里已经足够好,但Redis进程
# 出问题或断电时可能造成一段时间的写操作丢失(这取决于配置的save指令)。
#
# AOF是一种提供了更可靠的替代持久化模式,例如使用默认的数据写入文件策略(参见后面的配置)
# 在遇到像服务器断电或单写情况下Redis自身进程出问题但操作系统仍正常运行等突发事件时,Redis
# 能只丢失1秒的写操作。
#
# AOF和RDB持久化能同时启动并且不会有问题。
# 如果AOF开启,那么在启动时Redis将加载AOF文件,它更能保证数据的可靠性。
#
# 请查看 http://redis.io/topics/persistence 来获取更多信息.

appendonly no

# 纯累加文件名字(默认:"appendonly.aof")

appendfilename "appendonly.aof"

于是,就抱着碰运气的想法,把配置改了appendonly yes改为no,重启redis,果然够没有任何报错,而且,那三个命令也被禁用了。

以上这篇redis禁止几个危险命令的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • redis常用命令、常见错误、配置技巧等分享

    1. redis查看当前所有的key 复制代码 代码如下: KEYS * 2. 查看当前redis的配置信息 复制代码 代码如下: CONFIG GET * 3. MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled. Please check Redis

  • Redis禁用命令、危险命令及规避方法

    FLUSHALL FLUSHDB 命令会清空数据,而且从不失败,对于线上集群非常危险. KEYS * 命令,当数据规模较大时使用,会严重影响Redis性能,也非常危险. 如果从根本上规避这些风险呢? Redis提供了非常简单且有效的方法,直接在配置文件中设置禁用这些命令.设置非常简单,如下 复制代码 代码如下: rename-command FLUSHALL "" rename-command FLUSHDB "" rename-command KEYS "

  • Redis操作命令总结

    一.key pattern 查询相应的key (1)redis允许模糊查询key 有3个通配符  *.?.[] (2)randomkey:返回随机key (3)type key:返回key存储的类型 (4)exists key:判断某个key是否存在 (5)del key:删除key (6)rename key newkey:改名 (7)renamenx key newkey:如果newkey不存在则修改成功 (8)move key 1:将key移动到1数据库 (9)ttl key:查询key的

  • redis禁止几个危险命令的方法

    这几天客户一直给我反映一个问题,那就是他的缓存服务器redis每天会清理库,很纳闷,我配置的redis一般保持的默认,不应该会每天去清理库的,感觉应该还是他的程序上有点问题吧. 不过,不管程序问题还是配置问题,我想到就是可以吧清库的命令禁掉,这样即使他程序要去清理也是没办法的,于是就百度了一下,看到所有相关的文档都是一个人写的,就是在redis.conf中使用rename-conmand rename-command FLUSHALL "" rename-command FLUSHDB

  • Yii框架的redis命令使用方法简单示例

    本文实例讲述了Yii框架的redis命令使用方法.分享给大家供大家参考,具体如下: <?php \Yii::$app->redis->set('user','aaa'); \Yii::$app->redis->set('user2','bbb'); \Yii::$app->redis->set('user3','ccc'); \Yii::$app->redis->set('user4','ddd'); \Yii::$app->\Yii->$

  • redis执行redis命令的方法教程

    Redis 命令 Redis 命令用于在 redis 服务上执行操作.所以我们必须要启动Redis服务程序,也就是redis安装目录下的redis-server.exe,你可以双击执行,也可以打开cmd窗口,将路径定位到Redis安装目录下,通过redis-server命令执行. 要在 redis 服务上执行命令需要一个 redis 客户端.Redis 客户端在我们之前下载的的 redis 的安装包中,也就是redis-cli.exe,同理,可以双击执行也可以通过命令执行. 语法 Redis 客

  • 利用Lua定制Redis命令的方法详解

    前言 Redis作为一个非常成功的数据库,提供了非常丰富的数据类型和命令,使用这些,我们可以轻易而高效地完成很多缓存操作,可是总有一些比较特殊的问题或需求需要解决,这时候可能就需要我们自己定制自己的 Redis 数据结构和命令. Redis命令问题 线程安全问题 我们都知道 Redis 是单线程的,可是它怎么会有 线程安全 问题呢? 我们正常理解的线程安全问题是指单进程多线程模型内部多个线程操作进程内共享内存导致的数据资源充突.而 Redis 的线程安全问题的产生,并不是来自于 Redis 服务

  • Redis优雅地实现延迟队列的方法分享

    目录 前言 使用 依赖配置 配置文件 demo代码 执行效果 原理分析 队列创建 生产者 消费者 整个流程 总结思考 前言 工作中常常会遇到这样的场景,如订单到期未支付取消,到期自动续费等,我们发现延迟队列非常适合在这样的场景中使用.常见的延迟队列的优秀实现有rabbitMQ的死信队列,RocketMQ的延迟队列等,但是了有时候项目没有特别的大,没有引入类似的消息中间件,但是了又遇到了特别适合使用延迟队列的场景,我们一般会利用已有的redis实现一个简陋的延迟队列.常见的实现方式有监听过期key

  • 利用Redis统计网站在线活跃用户的方法

    前言 在工作中我们经常遇到这样的需求,要对某个在线网站的活跃用户数量进行统计.这里我们以redis为例,说明一下其实现的过程. 实现方法 在Redis中存在bitmap这种数据类型,这种数据类型是建立在string数据类型之上的.这里,我们主要用到setbit.bitcount这2个命令,而使用的客户端为python的redis库. import redis r = redis.StrictRedis(host="127.0.0.1",port=6379,db=0) 这里我们引入red

  • PHP基于Redis消息队列实现发布微博的方法

    本文实例讲述了PHP基于Redis消息队列实现发布微博的方法.分享给大家供大家参考,具体如下: phpRedisAdmin :github地址  图形化管理界面 git clone [url]https://github.com/ErikDubbelboer/phpRedisAdmin.git[/url] cd phpRedisAdmin git clone [url]https://github.com/nrk/predis.git[/url] vendor 首先安装上述的Redis图形化管理

  • Redis 基础教程之事务的使用方法

    Redis 基础教程之事务的使用方法 Redis 事务可以一次执行多个命令, 并且带有以下两个重要的保证: 事务是一个单独的隔离操作:事务中的所有命令都会序列化.按顺序地执行.事务在执行的过程中,不会被其他客户端发送来的命令请求所打断. 事务是一个原子操作:事务中的命令要么全部被执行,要么全部都不执行. 一个事务从开始到执行会经历以下三个阶段: 开始事务. 命令入队. 执行事务. 实例 以下是一个事务的例子, 它先以 MULTI 开始一个事务, 然后将多个命令入队到事务中, 最后由 EXEC 命

  • Redis集群与SSM整合使用方法

    首先是创建redis-cluster文件夹: 因为redis最少需要6个节点(三主三从),为了更好的理解,我这里创建了两台虚拟机(192.168.0.109 192.168.0.110),分别在两台虚拟机的/opt/redis-4.0.1/redis-cluster下创建三个节点文件夹 192.168.0.109: 192.168.0.110: 以上6个节点全部创建完成,分别再在这六个文件夹下创建redis.conf配置文件,其中配置如图: port 7000 bind 192.168.0.10

  • Redis 密码设置和查看密码的方法

    redis没有实现访问控制这个功能,但是它提供了一个轻量级的认证方式,可以编辑redis.conf配置来启用认证. 1.初始化Redis密码: 在配置文件中有个参数: requirepass  这个就是配置redis访问密码的参数: 比如 requirepass test123: (Ps:需重启Redis才能生效) redis的查询速度是非常快的,外部用户一秒内可以尝试多大150K个密码:所以密码要尽量长(对于DBA 没有必要必须记住密码): 2.不重启Redis设置密码: 在配置文件中配置re

随机推荐