redis 记录

设置后台启动运行

daemonize no

修改为

daemonize yes

禁止外网访问 Redis

bind 127.0.0.1

禁止一些高危命令

rename-command FLUSHDB ""
rename-command FLUSHALL ""
rename-command CONFIG   ""
rename-command EVAL     ""

设置密码登录

第一步:找到 Redis 数据库的配置文件 redis.conf ,在配置文件中找到以下信息

#requirepass foobared 

第二步:设置密码,把配置文件前面的 # 号去掉

requirepass 这里输入你的密码

或者通过命令实现,不需要在配置文件中更改,需要开启数据库 redis-server ,并且连接数据库客户端 redis-cli 之后输入以下命令

设置密码命令:config set requirepass 你的密码 
获取密码命令:config get requirepass 

第三步:重启数据库

sudo service redis restart
sudo redis-server restart

第四步:连接数据库两种方法

第一种授权连接数据库方法

redis-cli -h 这里输入数据库ip地址 -p 这里是端口号 -a 这里是密码

第二种授权连接数据库方法

auth 你的密码

Redis 两种持久化方式

Snapshotting 持久化(快照,默认),RDB 持久化默认生成的文件名为 dump.rdb,以下为配置文件的信息

save 900 1  #900秒内如果超过1个key被修改,则发起快照保存
save 300 10 #300秒内容如超过10个key被修改,则发起快照保存
save 60 10000 #60秒内容如超过10000个key被修改,则发起快照保存

由于快照方式是在一定间隔时间做一次的,所以如果 redis 意外 down 掉的话,就会丢失最后一次快照后的所有修改。如果应用要求不能丢失任何修改的话,可以采用 AOF 持久化方式

Append-only file(缩写aof)持久化

AOF 比快照方式有更好的持久化性,是由于在使用aof持久化方式时, redis 会将每一个收到的写命令都通过 write 函数追加到文件中(默认是 appendonly.aof)。当 redis 重启时会通过重新执行文件中保存的写命令来在内存中重建整个数据库的内容。当然由于 OS 会在内核中缓存 write 做的修改,所以可能不是立即写到磁盘上。这样 AOF 方式的持久化也还是有可能会丢失部分修改。不过我们可以通过配置文件告诉 redis 我们想要 通过 fsync 函数强制 OS 写入到磁盘的时机。有三种方式如下(默认是:每秒fsync一次)

appendonly yes              //启用aof持久化方式
# appendfsync always      //每次收到写命令就立即强制写入磁盘,最慢的,但是保证完全的持久化,不推荐使用

appendfsync everysec     //每秒钟强制写入磁盘一次,在性能和持久化方面做了很好的折中,推荐 

# appendfsync no    //完全依赖os,性能最好,持久化没保证

总结,如果需要把默认的持久化方式更改,只需要在 Redis 配置文件中找到

appendonly no

改为

appendonly yes

保存之后重启数据库即可,再执行 CURD 命令之后在 redis-server 的目录中就会出现 appendonly.aof 文件,里面记录着输入过命令

打赏作者

您将是第一位评论人!

提醒
avatar