redis缓存一般存些什么数据 redis有几种缓存方式

面试中问到Redis持久化的原理,本篇在做详细解答1、可在redis.conf中配置,会以一段时间内达到指定修改的次数为规则来触发快照操作,快照文件名为dump.rdb 。每当Redis服务重启的时候都会从该文件中把数据加载到内存中 。在60秒内有10000次操作即触发RDB持久化 。
2、RDB 持久化机制 :是对 redis 数据执行周期性的持久化 。这种方式就是将内存中数据以快照的方式写入到二进制文件中,默认的文件名为 dump.rdb 。客户端也可以使用save或者bgsave命令通知redis做一次快照持久化 。
3、AOF(append only file)持久化:以独立日志的方式记录每次写命令 , 重启时再重新执行AOF文件中的命令达到恢复数据的目的 。AOF的主要作用是解决了数据持久化的实时性,目前已经是Redis持久化的主流方式 。
4、redis提供两种方式进行持久化,一种是RDB持久化(原理是将Reids在内存中的数据库记录定时dump到磁盘上的RDB持久化),另外一种是AOF(append only file)持久化(原理是将Reids的操作日志以追加的方式写入文件) 。
5、在redis的配置里有着这样的一段配置:save 900 1save 300 10save 60 10000很关键的一段配置,这时RDB持久化的核心 。
一般项目为了解决什么问题而使用redis替代不了mysql 第一 它不具有SQL的功能,没有关系的概念,第二它的数据持久化和事务管理的功能远远不及mysql。它目前的确可以代替较为简单的memcache作为一个具有多种数据结构的缓存服务器进行使用 。对我来说处于核心地位 。
常见的说法是,有N多热点数据,又是临时用一下 , 又想提高并发速度,吞吐量,那就可以考虑,如淘宝的节假日的销售活动 。提前把数据准备好,活动完后失效 。我的看法 , 有足够多的内存,我又想让系统极快 。
Redis的缺点是数据库容量受到物理内存的限制,不能用作海量数据的高性能读写 , 因此Redis适合的场景主要局限在较小数据量的高性能操作和运算上 。
我们可以设置过期时间然后再进行缓存更新操作,这个功能最为常见,我们几乎所有的项目都有所运用 。限时业务的运用(推荐学习:Redis视频教程)redis中可以使用expire命令设置一个键的生存时间,到时间后redis会删除它 。
redis做mysql的缓存【redis缓存一般存些什么数据 redis有几种缓存方式】1、redis是一种内存性的数据存储服务,所以它的速度要比mysql快 。2,redis只支持String , hashmap,set,sortedset等基本数据类型 , 但是不支持联合查询,所以它适合做缓存 。
2、前者终究是个缓存,不可能永久保存数据(LRU机制) , 支持分布式,后者除了缓存的同时也支持把数据持久化到磁盘等,redis要自己去实现分布式缓存(貌似最新版本的已集成),自己去实现一致性hash 。
3、应用Redis实现数据的读写,同时利用队列处理器定时将数据写入mysql 。
4、脚本同步:自己写脚本将数据库数据写入到redis/memcached 。这就涉及到实时数据变更的问题(mysql row binlog的实时分析),binlog增量订阅Alibaba 的canal  , 以及缓存层数据 丢失/失效 后的数据同步恢复问题 。
5、提高数据库的并发处理能力;避免写请求锁表阻塞读请求;避免单点,提高数据库的可用性;而使用Redis作为DB前面的缓存,是为了减少对MySQL的压力 , 提高系统的处理效率 。二者解决的问题域不同 , 不存在谁替代谁 。
6、读写分离是分摊数据库的读取压力,用缓存是减少数据库的读取压力 。

    推荐阅读