Redis介绍

Redis是一个数据库,位于内存中,存储数据是key-value对,value可以是多种类型,list,set,string等。持久化:可以将数据异步存储到磁盘里;是对关系型数据库的补充。

1.  Redis的持久化操作:两种方式RDB(redis database)和AOF(append only file)

         RDB:在某个时刻将redis的内存快照存到磁盘中。RDB在持久化的过程中,会使用另一个临时文件存储Redis存储的数据,等持久化结束后,才将临时文件代替上次持久化好的文件。Redis会新创建一个子进程(fork)完成持久化的工作,就是把redis存储的数据存储到磁盘中去。对于数据量很大,且性能要求比较高的采用RDB持久化效果很好。但是RDB缺点也很明显,比如RDB每隔10分 钟持久化一次,但是某次持久化出现问题,那这10分钟的数据都消失了,没有存储到磁盘。

         AOF:该方法持久化到磁盘上的是作用在redis上的写命令,每次重开机或者redis内存清空,需要加载已持久化的数据,就把之前redis的写命令执行一遍。AOF默认一秒钟执行一次持久化操作,就算持久化出现问题,也只是丢失这一秒钟的数据,且可以使用redis-check-AOF命令恢复数据。如果AOF文件很大,可以执行压缩命令。

2.  Redis的主从同步

         和MySQL一样都支持主从同步,那Redis支持主从同步的目的是1.数据冗余备份;2.提升读性能;可以将一些读操作消耗时间比较长的操作放到从服务器中进行。主服务器可以减少数据持久化的操作,让从服务器去做。

         主从同步的原理:从服务器发出sync命令后,主服务器会执行bgsave指令创建一个新进程进行持久化操作,并把数据存储到RDB文件里,在持久化期间,将写指令都缓存到内存里面,接着将RDB文件发送给从服务器,然后再将缓存在内存里面的写指令以RDB协议的格式发送给从服务器。在一个时间间隔内,即使有很多个从服务器发出sync请求,主服务器也执行bgsave命令一次,然后把执行得到的RDB文件分发给多个从服务器。

3.  redis在Java项目中的使用

  建一个redis.properties属性文件

原文地址:https://www.cnblogs.com/zhihuayun/p/7283827.html