- 0x00 Redis 命令
- 1) 内置命令
- 0x01 使用场景
- 0x02 数据持久化
1.RDB 方式
2.AOF 方式
0x03 功能使用配置
密码认证
0x00 Redis 命令
复习Redis的五种数据类型:String 、List、Hash、Set、Sorted-set
1) 内置命令
0x01 使用场景
描述:前面我们简单的了解了一下redis使用操作,这一部分我们主要来说说Redis的应用场景;
(1) 取最新N个数据操作
描述:比如一篇文章的评论只显示最新的5000千条评论的ID放在Redis的List集合之中,并将超出集合部分从数据库中获取;
(2) 排行榜应用TOP N操作
描述:此处需要按照次数进行排序,所以此时我们需要采用sorted set命令,将您需要排序的key名称以及其具体数据设置成相应的value,每次只需要执行ZADD命令即可;
(3) 需要精准设定过期时间应用
描述:可以将上面说到的sorted set的score值设置成为过期时间的时间戳,就可以通过过期时间排序以及定时清除过期数据;
(4) 计算器应用
描述:可以统计在线人数由于Redis命令是原子性的,您可以轻松利用INCR与DECR命令来构建计算器系统
(5) Uniq操作获取某段时间所有数据排重置
描述:将输入放入set集合即可,所有的数据将会自动排重;
(6) 实时系统,反垃圾系统
(7) Pub/Sub构建实时消息系统
(8) 构建队列系统
描述:可以使用list可以构建队列,使用sorted set 甚至可以构建有优先级的队列系统;
0x02 数据持久化
描述:Redis是将数据存储在内存之中所以其读写效率非常高,但是往往事物都不是那么美好,当由于某些不可抗力导致机器宕机、redis服务停止此时您在内存中的数据将完全丢失;
为了使Redis在重启后仍能保证数据不丢失我们就需要对其进行设置持久化存储,使其将内存的数据通过某种方式存入磁盘中,当Redis服务端重启后便会从该磁盘中进行读取数据进而恢复Redis中的数据;
Redis支持两种持久化方式:
- (1) RDB 持久化(默认支持):该机制是指在指定的时间间隔内将内存中数据集写入到磁盘;
- (2) AOF 持久化:该机制将以日志的形式记录服务器所处理的每一个写操作,同时在Redis服务器启动之初会读取该文件来重新构建数据库,以保证启动后数据库中的数据完整;
- (3) 无持久化: 将Redis作为一个临时缓存,并将数据存放到
memcached
之中;
TIPS:
- Redis可以同时使用RDB和AOF方式来保证,重启后Redis服务器中的数据完整;
1.RDB 方式
优势
- 该方式会将内存中的数据保存一个文件中默认dump.rdb,这对于文件备份而言是非常完美的,通过备份策略来保证数据的完整性,同时可以通过定时任务打包该数据文件就可以转移到其它存储介质;
- 性能最大化,Redis的服务进程在做持久化的时候,它将fork出子线程然后由它完成持久化工作,它可以极大的避免服务进程执行IO操作了;
- 相比较于AOF机制下如果数据集很大,RDB的启动效率就会更高
劣势
- 它保证了数据的持久化但是没法一定保证数据的高可用性(即最大限度的避免数据丢失),比如当在持久化数据之前出现宕机,那么此时没有来得及写入的数据将会被丢失;
- 由于RDB是通过Fork子进程来协助完成数据持久化工作的,因此当数据集较大的时候会导致整个服务器停止服务几百毫秒到1秒钟之间(
可通过集群方式解决
);
配置说明:
$vim redis.conf
实际案例:
2.AOF 方式
优势
- 该机制可以带来更高的数据安全性,即数据持久化; 常规三种同步策略即每秒同步(
异步完成效率高
)、每修改同步(同步插入修改删除操作效率最低
)和不同步;
- 由于该机制对日志文件的写入操作采用的是append模式,即使过程中出现宕机也不会破坏日志文件中已经存在的内容,如果数据不完整在Redis下次启动之前可以通过redis-check-aof解决数据一致性问题;
- 如果日志文件体积过大可以启动rewrite机制,即redis以append模式不断的将修改数据写到老的磁盘文件中,同时创建新文件记录期间有哪些修改命令执行,此项极大的保证数据的安全性;
- AOF包含一个格式清晰、易于理解的日志文件用于记录所有的修改操作(
可通过此文件完成数据的重构
)
劣势
- 对于相同数量的数据集而言AOF文件大于RDB文件;
- 根据同步策略的不同,AOF在运行效率上往往会慢于RDB,总的来说每秒同步策略的效率还是比较高的
配置说明:
实际案例AOF重写:
因为AOF为记录每次的操作,会导致实际记录不多但文件过大,所以需要做重写操作
- 1)AOF自动重写:按配置文件条件自动触发重写
- 2)AOF手动重写:连接redis使用命令bgrewriteaof,进行手动重写
0x03 功能使用配置
描述:小小功能,单个配置描述
密码认证
描述:Redis配置密码认证的几种方式总结:
使用密码验证登陆Redis服务器: