导航:首页 > 程序命令 > redis禁用命令

redis禁用命令

发布时间:2022-08-15 11:09:59

❶ windows 怎样关闭redis

安装redis之后
命令行窗口中输入 redis-server redis.windows.conf 启动redis
关闭命令行窗口就是关闭 redis。
---
redis作为windows服务启动方式
redis-server --service-install redis.windows.conf
启动服务:redis-server --service-start
停止服务:redis-server --service-stop

❷ redis怎么会崩溃

由于redis存储在内存中且提供一般编程语言常用的数据结构存储类型,所以经常被用于做服务器崩溃宕机的数据恢复处理。

服务器可以在某些指定过程中将需要保存的数据以json对象等方式存储到redis中,也就是我们常说的快照,当服务器运行时读取redis来判断是否有待需要恢复数据继续处理的业务。

当一次业务处理结束后再删除redis的数据即可。

redis提供两种将内存数据导出到硬盘实现数据备份的方法:

RDB方式(默认)


RDB方式的持久化是通过快照(snapshotting)完成的,当符合一定条件时Redis会自动将内存中的所有数据进行快照并存储在硬盘上。进行快照的条件可以由用户在配置文件中自定义,由两个参数构成:时间和改动的键的个数。当在指定的时间内被更改的键的个数大于指定的数值时就会进行快照。RDB是redis默认采用的持久化方式,在配置文件中已经预置了3个条件:


save 900 1 # 900秒内有至少1个键被更改则进行快照
save 300 10 # 300秒内有至少10个键被更改则进行快照
save 60 10000 # 60秒内有至少10000个键被更改则进行快照
可以存在多个条件,条件之间是“或”的关系,只要满足其中一个条件,就会进行快照。 如果想要禁用自动快照,只需要将所有的save参数删除即可。


Redis默认会将快照文件存储在当前目录(可CONFIG GET dir来查看)的mp.rdb文件中,可以通过配置dir和dbfilename两个参数分别指定快照文件的存储路径和文件名。


Redis实现快照的过程


Redis使用fork函数复制一份当前进程(父进程)的副本(子进程);
父进程继续接收并处理客户端发来的命令,而子进程开始将内存中的数据写入硬盘中的临时文件;
当子进程写入完所有数据后会用该临时文件替换旧的RDB文件,至此一次快照操作完成。
在执行fork的时候操作系统(类Unix操作系统)会使用写时复制(-on-write)策略,即fork函数发生的一刻父子进程共享同一内存数据,当父进程要更改其中某片数据时(如执行一个写命令 ),操作系统会将该片数据复制一份以保证子进程的数据不受影响,所以新的RDB文件存储的是执行fork一刻的内存数据。


Redis在进行快照的过程中不会修改RDB文件,只有快照结束后才会将旧的文件替换成新的,也就是说任何时候RDB文件都是完整的。这使得我们可以通过定时备份RDB文件来实 现Redis数据库备份。RDB文件是经过压缩(可以配置rdbcompression参数以禁用压缩节省CPU占用)的二进制格式,所以占用的空间会小于内存中的数据大小,更加利于传输。


除了自动快照,还可以手动发送SAVE或BGSAVE命令让Redis执行快照,两个命令的区别在于,前者是由主进程进行快照操作,会阻塞住其他请求,后者会通过fork子进程进行快照操作。 Redis启动后会读取RDB快照文件,将数据从硬盘载入到内存。根据数据量大小与结构和服务器性能不同,这个时间也不同。通常将一个记录一千万个字符串类型键、大小为1GB的快照文件载入到内 存中需要花费20~30秒钟。 通过RDB方式实现持久化,一旦Redis异常退出,就会丢失最后一次快照以后更改的所有数据。这就需要开发者根据具体的应用场合,通过组合设置自动快照条件的方式来将可能发生的数据损失控制在能够接受的范围。如果数据很重要以至于无法承受任何损失,则可以考虑使用AOF方式进行持久化。


AOF方式


默认情况下Redis没有开启AOF(append only file)方式的持久化,可以在redis.conf中通过appendonly参数开启:


appendonly yes
在启动时Redis会逐个执行AOF文件中的命令来将硬盘中的数据载入到内存中,载入的速度相较RDB会慢一些


开启AOF持久化后每执行一条会更改Redis中的数据的命令,Redis就会将该命令写入硬盘中的AOF文件。AOF文件的保存位置和RDB文件的位置相同,都是通过dir参数设置的,默认的文件名是appendonly.aof,可以通过appendfilename参数修改:


appendfilename appendonly.aof
配置redis自动重写AOF文件的条件


auto-aof-rewrite-percentage 100 # 当目前的AOF文件大小超过上一次重写时的AOF文件大小的百分之多少时会再次进行重写,如果之前没有重写过,则以启动时的AOF文件大小为依据
auto-aof-rewrite-min-size 64mb # 允许重写的最小AOF文件大小
配置写入AOF文件后,要求系统刷新硬盘缓存的机制


# appendfsync always # 每次执行写入都会执行同步,最安全也最慢
appendfsync everysec # 每秒执行一次同步操作
# appendfsync no # 不主动进行同步操作,而是完全交由操作系统来做(即每30秒一次),最快也最不安全
Redis允许同时开启AOF和RDB,既保证了数据安全又使得进行备份等操作十分容易。此时重新启动Redis后Redis会使用AOF文件来恢复数据,因为AOF方式的持久化可能丢失的数据更少

我们简单做一个定时计数器的小程序

[javascript]view plain

❸ redis漏洞怎么预防

1.在信任的内网运行,尽量避免有公网访问,redis自身只有一个密码控制访问,不能设置用户权限和IP限制。理论把redis运行在一个信任的网络环境中。

2.绑定Redis监听的网络接口

如果服务器有多个IP,可限定redis server监听的IP; 通过redis配置项bind,可同时绑定多个IP.

3.禁止root用户启动redis,使用普通用户启动,安全性往往高很多; 业务程序永久别用root用户运行。

4.限制redis文件目录访问权限

设置redis的主目录权限为700;如果redis配置文件独立于redis主目录,权限修改为600,因为Redis密码明文存储在配置文件中。

$chmod700 /var/lib/redis#假设这是你redis目录

$chmod600 /etc/redis/redis.conf#假设这是你redis配置文件

5.避免使用熟知端口

程序运行尽量避免使用熟知端口或默认端口,降低被初级扫描的风险。

6.开启Redis密码认证,并设置高复杂度密码

redis在redis.conf配置文件中,设置配置项requirepass, 开户密码认证。

$vim/etc/redis/redis.conf

requirepass

redis因查询效率高,auth这种命令每秒能处理10w次以上,简单的redis的密码极容易为攻击者暴破。

requirepass至少长度20位以上,为方便可使用一个特殊串sha256sum命令生成64位的无特殊字符串。

7.禁用或重命名危险命令

这个漏洞就利用config/save两个命令完成攻击 。 因redis无用户权限限制,建议危险的命令,使用rename配置项进行禁用或重命名,这样外部不了解重命名规则,攻击者就不能执行这类命令。

以下示例:redis.config文件禁用FLUSHDB、FLUSHALL两个命令;重命名CONFIG、SHUTDOWN命令,

添加一个特殊的后缀。 这样redis启动后,只能运行CONFIG_b9fc8327c4dee7命令,不能执行CONFIG命令。

rename-command CONFIG CONFIG_b9fc8327c4dee7

rename-command SHUTDOWN SHUTDOWN_b9fc8327c4dee7

rename-command FLUSHDB ""

rename-command FLUSHALL ""

8.禁止Redis中存储敏感的明文数据

Redis设计旨在提供高性能的KV服务,至少目前在权限访问控制和数据持久化方面比较弱化。所以禁止在Redis中存储或缓存,敏感的明文数据。

9.安全监控,建立 蜜罐网络 ,有攻击尝试时,可及时发现。

监控redis安全状态,cmdstat_auth cmdstat_flushdb/flushall监控报警。

欢迎关注公众号:cxyluna ,互联网IT技术分享。

❹ windows redis 命令行怎么启动服务

停止服务命令: net stop 服务名称
启动服务命令: net start 服务名称
禁用服务命令: sc config 服务名称 start= disabled
支持服务名称: sc config 服务名称 start= auto

❺ 启动redis-server之后怎么停止

安装redis之后 在命令行窗口中输入 redis-server redis.windows.conf 启动redis 关闭命令行窗口就是关闭redis。

Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。

定义:

redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。

在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

❻ redis服务启动会每5分钟连接一次客户端,怎么取消这个命令

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

❼ redis lua 可以自定义方法吗

漏洞修复加固措施

(一)网络加固

绑定127.0.0.1,redis默认是监听的127.0.0.1上,如果仅仅是本地通信,请确保监听在本地。这种方式缓解了redis的风险。在redis.conf中配置如下:

bind 127.0.0.1

(二)设置防火墙

如果需要其他机器访问,或者设置了slave模式,需添加相应的防火墙设置。命令如下:

`iptables -A INPUT -s x.x.x.x -p tcp --dport 6379 -j ACCEPT`

(三)添加认证

redis默认没有开启密码认证,打开/etc/redis/redis.conf配置文件, (requirepass 密码)可设置认证密码,保存redis.conf,重启redis(/etc/init.d/redis-server restart)之后,需要执行(auth 密码)。示例如下:

`root@kali:~# redis-cli -h 192.168.10.212

redis 192.168.10.212:6379> keys *

(error) ERR operation not permitted

redis 192.168.10.212:6379> auth @nsF0cus!@#

OK`

(四)设置单独账户

设置一个单独的redis账户:创建一个redis账户,通过该账户启动。示例如下:

`setsidsudo -u redis /usr/bin/redis-server /etc/redis/redis.conf'`

(五)重命名重要命令

由于redis没有做基本的权限分离,无管理账号和普通账号之分,导致攻击者登录后可执行任意操作,因此需要隐藏重要命令,例如:FLUSHDB, FLUSHALL, KEYS, PEXPIRE, DEL, CONFIG, SHUTDOWN, BGREWRITEAOF, BGSAVE, SAVE, SPOP, SREM, RENAME, DEBUG, EVAL`。

其中在redis2.8.1和RedisRedis3.x (< 3.0.2)存在有eval沙箱逃逸漏洞,攻击者利用漏洞可执行任意lua代码。设置方法如下,还编辑redis.conf文件:

`rename-command CONFIG ""

rename-command flushall ""

rename-command flushdb ""

rename-command shutdown shutdown_dvwa`

上述配置将config,flushdb,flushall设置为了空,即禁用该命令,我们也可以命名为一些攻击者难以猜测,我们自己却容易记住的的名字。保存之后,执行/etc/init.d/redis-server restart 重启生效。

❽ redis-server运行后,控制台不能继续输入命令了吗

清空数据库:打开redis-client.exe,输入命令flushdb
redis自带持久化,因此是不会因为掉电而丢失所有内容的。默认情况下,redis每隔一定时间间隔会对数据库做一次内存快照,记录数据库此刻的内容;启动服务器时会自动加载内存快照。
你可以打开edis文件夹里.rdb文件看看。

❾ redis 如何重启

1、如果是用apt-get或者yum install安装的redis,可以直接通过下面的命令停止/启动/重启redis:/etc/init.d/redis-server stop/etc/init.d/redis-server start/etc/init.d/redis-server restart

2、如果是通过源码安装的redis,则可以通过redis的客户端程序redis-cli的shutdown命令来重启redis。

阅读全文

与redis禁用命令相关的资料

热点内容
客户端框架源码 浏览:206
python自动办公能干嘛 浏览:873
程序员追爱 浏览:252
程序员逻辑故事 浏览:768
加密icsot23i2c 浏览:713
你们有什么好的解压软件 浏览:607
常州空气压缩机厂家 浏览:241
安卓如何关闭app内弹出的更新提示 浏览:409
e4a写的app怎么装苹果手机 浏览:201
海立压缩机海信系 浏览:210
社保如何在app上合并 浏览:220
小米加密照片后缀 浏览:236
我的世界网易手机怎么创服务器 浏览:978
载入单页源码 浏览:930
阿里云服务器seo 浏览:777
海洋斗什么时候上线安卓 浏览:86
中行app如何查每日汇款限额 浏览:840
输入服务器sn是什么意思 浏览:725
sha1算法java 浏览:90
asp代码压缩 浏览:851