2.Redis基本管理操作

2022-04-02 分类:redis 阅读(301) 评论(0)

孙富阳, 江湖人称没人称。多年互联网运维工作经验,曾负责过孙布斯大规模集群架构自动化运维管理工作。擅长Web集群架构与自动化运维,曾负责国内某大型博客网站运维工作。

1.基础配置文件介绍

mkdir /data/6379
cat > /data/6379/redis.conf<<EOF
daemonize yes
port 6379
logfile /data/6379/redis.log
dir /data/6379
dbfilename dump.rdb
EOF

redis-cli shutdown
redis-server /data/6379/redis.conf
netstat -lnp | grep 63
配置文件说明
是否后台运行:daemonize yes
默认端口:port 6379
日志文件位置:logfile /var/log/redis.log
持久化文件存储位置:dir /data/6379
RDB持久化数据文件:dbfilename dump.rdb

2.redis安全配置

redis默认开启了保护模式,只允许本地回环地址登录并访问数据库。
禁止protected-mode
protected-mode yes/no (保护模式,是否只允许本地访问)

(1)Bind :指定IP进行监听
vim /data/6379/redis.conf
bind 10.0.0.51 127.0.0.1

(2)增加requirepass  {password}
vim /data/6379/redis.conf
requirepass 123456
重启
[root@db01 ~]# redis-cli shutdown
[root@db01 ~]# redis-server /data/6379/redis.conf
验证
方法一:
[root@db03 ~]# redis-cli -a 123456
127.0.0.1:6379> set name zhangsan 
OK
127.0.0.1:6379> exit
方法二:
[root@db03 ~]# redis-cli
127.0.0.1:6379> auth 123456
OK
127.0.0.1:6379> set a b
[root@db01 src]# redis-cli -a 123 -h 10.0.0.51 -p 6379
10.0.0.51:6379> set b 2
OK

3.在线查看和修改配置

CONFIG GET *###查看所有配置
CONFIG GET requirepass###查看密码
CONFIG GET r*###模糊查看
CONFIG SET requirepass 123###在线修改密码

4.redis持久化(内存数据保存到磁盘)

1.RDB 持久化

可以在指定的时间间隔内生成数据集的 时间点快照(point-in-time snapshot)。
优点:速度快,适合于用做备份,主从复制也是基于RDB持久化功能实现的。
缺点:会有数据丢失
rdb持久化核心配置参数:
vim /data/6379/redis.conf
dir /data/6379
dbfilename dump.rdb
save 900 1
save 300 10
save 60 10000

配置分别表示:
900秒(15分钟)内有1个更改
300秒(5分钟)内有10个更改
60秒内有10000个更改

2.AOF 持久化(append-only log file)

    记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集。 
    AOF 文件中的命令全部以 Redis 协议的格式来保存,新命令会被追加到文件的末尾。
    优点:可以最大程度保证数据不丢
    缺点:日志记录量级比较大

AOF持久化配置
是否开启:
appendonly yes
策略:
appendfsync always
appendfsync everysec
appendfsync no

是否打开aof日志功能
每1个命令,都立即同步到aof 
每秒写1次
写入工作交给操作系统,由操作系统判断缓冲区大小,统一写入到aof.

vim /data/6379/redis.conf
appendonly yes
appendfsync everysec

3.redis 持久化方式有哪些?有什么区别?

rdb:基于快照的持久化,速度更快,一般用作备份,主从复制也是依赖于rdb持久化功能
aof:以追加的方式记录redis操作日志的文件。可以最大程度的保证redis数据安全,类似于mysql的binlog

5.Redis弱事务

redis的事务是基于队列实现的。
mysql的事务是基于事务日志和锁机制实现的。
redis是乐观锁机制。

开启事务功能时(multi)
multi 
command1      
command2
command3
command4
exec 
discard

4条语句作为一个组,并没有真正执行,而是被放入同一队列中。
如果,这是执行discard,会直接丢弃队列中所有的命令,而不是做回滚。
exec
当执行exec时,对列中所有操作,要么全成功要么全失败

127.0.0.1:6379> set a b
OK
127.0.0.1:6379> MULTI
OK
127.0.0.1:6379> set a b
QUEUED
127.0.0.1:6379> set c d
QUEUED
127.0.0.1:6379> exec
1) OK
2) OK

6.redis乐观锁实现(模拟买票)

发布一张票
set ticket 1
窗口1:
watch ticket
multi
set ticket 0       1---->0
窗口2:
multi 
set ticket 0 
exec 
窗口1:
exec

评论已关闭

登录

忘记密码 ?

切换登录

注册

鲁ICP备2021019243号-1