Redis数据库有很多特性,下面我们一一来看一下吧。
【多数据库】
Redis的多数据库和我们常用的MySQL类似,MySQL可以自定义创建很多和数据库create database myDataBase,而Redis默认有16个数据库,编号分别是0-15,可以根据需要修改数据库,select 1;select 2;默认使用的是0号数据库。
【消息订阅与发布】
像我们熟悉的qq会不断给我们推送一些新闻,广告等消息。这时候我们可以模拟消息的发布和订阅.
subscribe channel订阅频道;psubscribe channel批量订阅;publish channel content在指定频道上订阅消息。
【事务】
我们知道的是Mysql中事务的ACID特性,而Redis事务并没有ACID的特性,简单的说就是串行化顺序执行,redis中开启一个事务,然后将一些特定的命令提交,redis就会按照顺序一个个执行,在此期间不会执行其他客户端的任何请求,相当于单线程。
【Redis持久化】
所谓持久化:就是将数据存储在硬盘中。
redis一般情况下数据库都是在内存中的,关闭之后,就不存在了。下次再访问的时候就没有数据,针对这样的情况,redis提出了两张持久化机制。
RDB:是默认的持久化机制,而且默认是开启的。采用“快照机制”,存储数据库的时间状态。
优点:①占用的硬盘空间不大。②只有满足一定的条件才会激活RDB进行持久化保存操作。③适用于灾难恢复,一般大型公司采用RDB机制。
缺点:①对于内存比较紧张的机器,容易造成宕机,RDB机制就失效。
一定的条件:
1、服务器的正常关闭,服务器正常开启,加载rdb文件到内存中;
2、save 900 1:每900秒(15分钟)至少有1个key发生变化,则dump内存快照;
3、save 300 10 :每300秒(5分钟)至少有10个key发生变化,则dump内存快照;
4、save 60 10000:每60秒(1分钟)至少有10000个key发生变化,则dump内存快照;
AOF:采用“日志机制”,从服务器开启,AOF机制就启动,持续不断地记录更新的语句,当服务器下次正常启动,会加载aof日志文件,把日志文件中所有的命令按顺序执行一遍。
优点:①消耗的内存不大,一般小公司使用AOF或者AOF+RDB机制保障数据库的安全。
缺点:①只要有数据更新(添加、修改、删除),就把数据更新的语句,记录下来,所以aof文件占用的硬盘空间极大,不适用于灾难恢复。