onsql的引入
database为关系型数据库,最大的特点就是它的安全性,但是,database其最大的特性恰恰也是它的局限性,
由于database的安全性,导致对database进行大数据访问的时候,其访问效率会大大降低,因此就会造成用
户的体验感降低。
redis数据库引入
redis数据库是用C语言写的,正因为如此它的执行效率非常之高,可达到每秒钟110000万次的访问量,其写
效率也可达到每秒钟81000次。从而大大减小数据访问和写入的时间;
redis数据库的数据类型及其特点
redis数据库是key(数据库名)-value(数据类型)型的数据库
redis数据库共有5大数据类型:
String:字符串
List:有序集合
Hash:键值对(key-value键值对)
set:唯一集合
zset(storedset):有序唯一集合(按大小排序)
Redis是数据库的过期时间
redis数据库的过期时间是通过expire和pexpire命令设置的
前置是设置秒数,后者是设置毫秒数
本质就是通过将秒转换为时间戳来实现的。例如:expire 5这样会将当期时间 +5计算到时间戳,当时间戳
的时间来临就过期
Redis数据库过期删除策略
一般来说删除策略分为3中
1、定时删除
对内存是最友好的,通过定时器实现,保证过期键会尽可能快的被删除,并删除过期键所占用的
内存,缺点就是对CPU不友好,过期键很多情况下,删除过期键会占用喝多的CPU,容易造成
吐量的影响
Redis创建定时器需要用到Redis服务器中的时间事件,时间事件的实现方式无序列表,时间复
杂度为O(n),对每个键都创建定时器,不正常也不理想。
2、惰性删除
对CPU友好,程序只会在取出键的时候检查,判断是否过期,但是对内存不友好,可能过期之
后,长期没有访问,会一直存在,可以看成是一种内存的泄露
3、定时删除
该删除方法可以看作是以上两种的折中
定期删除的策略就是每隔一段时间就执行一次删除过期键的操作,并通过限制操作执行频率
和时常来减少对CPU的影响,简单来说,限制时间,限制删除键数量来操作。
##Redis持久化的两种方式
Redis持久化的方式有两种分别是AOF、RDB
RDB持久化方式:将Redis数据库中的数据储存到磁盘中进行数据的持久化
AOF持久化方式:将Redis数据库中的数据储存到日志文件中进行数据的持久化
二者的区别
RDB持久化是指在指定的时间间隔内将内存中的数据集快照写入磁盘,实际操作过程是fork一
个子进程,先将数据集写入临时文件,写入成功后,再替换之前的文件,用二进制压缩存储。
AOF持久化以日志的形式记录服务器所处理的每一个写、删除操作,查询操作不会记录,以文
本的方式记录,可以打开文件看到详细的操作记录。
onsql(Redis)和database数据同步
关系数据库和非关系数据库同步问题:https://blog.csdn.net/qq_27384769/article/details/79499373