二、Redis特性
程序员文章站
2022-05-20 14:57:32
...
一、多数据库
1、Redis可视化工具
Redis Desktop Manager
连接方式:公网IP,同时在阿里云服务器开放端口6379,连接即可;
2、多数据库
- 一个redis实例包含16个数据库(0—15),类似mysql一个实例下的多个数据库;
- 默认使用0号数据库;
# 切换数据库
select 1; select 2;
# 剪切数据: 将0号数据库的一个数据剪切到1号数据库
select 0 ; move key 1;
# 删除当前数据库的数据
flushdb
# 删除所有数据库的数据
flushall
3、消息的订阅与发布
- 打开不同的SSH客户端,如客户端A和客户端B,同时链接目标Redis
# A客户端:消息的订阅: 可以订阅多个频道,用空格隔开
subscribe channel1 channel2 channel3;
# 可以订阅一定格式的频道
psubscribe channel*;
# 退出客户端及订阅模式
ctrl + c
# B客户端发布消息: 发布后就可以在A客户端查看发布的消息
publish channel content
4、事务
伪事务
提交
# 定义两个数据
set age 10; set name shuzhan
# 开启事务
multi
# 操作数据: 执行后并不立即执行,而是将所有的操作放在一个队列中
incr age; incr name;
# 提交事务:
exec
# 提交后age可以执行成功,name执行失败,因此是伪事务
回滚
# 定义两个数据
set age 10; set name shuzhan
# 开启事务
multi
# 操作数据: 执行后并不立即执行,而是将所有的操作放在一个队列中
incr age; incr name;
# 回滚事务:
discard
# 回滚后上面两条都不会执行
二、数据持久化
- 关系型数据库:运行在磁盘中;
- 非关系型数据库:运行在内存中,因此读取速度比较快;
1、AOF机制
redis将每一个收到的写命令都通过write函数追加到AOF文件中,也就是日志记录。
持久化原理
即每个命令过来后,都会将该命令下在一个AOF文件中来保存;
文件重写原理
- AOF日志文件,随着redis的使用,势必会越来越大;
- 比如某些数据实际已经删除了,但是该数据的插入,修改及删除的指令也报错在AOF文件中,其实已经没有意义了;
- redis提供了bgrewriteaof命令。将内存中的数据以命令的方式保存到临时文件中,同时会fork出一条新进程来将临时文件重新写成一个新的AOF。
- 文件重写的时候,并没有去读旧的AOF文件,而是去内存中读数据,旧的AOF文件会保留下来;
三种触发机制 - always:同步持久化,每次发生数据变更会被立即记录到磁盘,性能较差但数据完整性比较好;
- everysec:异步操作,每秒记录同步一次,如果redis突然宕机,那这一秒前写入内存的数据会丢失;
- no: 从不同步;