![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Redis&MongoDB
whuruby
珞珈山下的理想,一分耕耘一分收获
展开
-
Redis持久化基础知识
Redis持久化机制 (1) 总体说明 Redis支持RDB和AOF两种持久化机制。RDB是定时存盘,AOF是将每次写入都记录到日志中,更加完整。RDB和AOF可以同时使用,但Redis重启时优先从AOF恢复数据。 (2) RDB方式: 优点: —-很容易实现每个小时备份或每天做备份,数据备份在紧凑型文件中,易于传输 —-fork子进程做备份,不影响运行时性能 —-Redis重启时加原创 2017-07-20 09:52:23 · 259 阅读 · 0 评论 -
Redis更新缓存策略
1、缓存【失效】:客户端请求数据先从缓存中查询,如果没有再查询数据库,最后将数据放入缓存2、缓存【命中】:客户端从缓存中直接取到数据,返回结果3、缓存【更新】:客户端写入数据到数据库,成功之后,让缓存失效(下次请求时从缓存中拿不到,则查询数据库,再放入缓存)4、为什么不采取更新后删除缓存策略? 防止并发写操作导致脏数据5、为什么不删除缓存后再更新数据库?原创 2017-12-08 09:27:38 · 13594 阅读 · 2 评论 -
Redis集群理论知识
1、 Redis集群功能 (1) 自动将数据分散存储到不同Redis实例中 (2) 支持失效节点自动检测及应对机制 2、 Redis 集群 TCP Ports (1) 每个节点需要两个TCP端口,一个用于客户端连接(6379),一个用于节点间的通信(6379+10000=16379) (2) Cluster bus:使用二进制协议实现的节点间通信渠道,用于节点失效检测、配置更新检测原创 2017-07-17 22:24:57 · 426 阅读 · 0 评论 -
Redis常用命令
1、Redis 客户端基本操作 Redis-cli连接某个Server:redis-cli -p port 查看运行Redis参数:config get logfile 动态设置Redis参数(不重启):config set logfiles2、Key相关操作 查询key是否存在:exists keyname 查询所有key:keys * 新建key:执行COMMAND时原创 2017-09-22 08:52:02 · 216 阅读 · 0 评论 -
Redis常见使用场景
1、使用String实现计数 特点:String的Value一般是String,也可以是数字 内部实现:当涉及数字运算时,自动把String转换为Integer进行运算 应用场景:对客户端发送验证码次数进行限制 String借助INCR、INCRBY、DECR、DECRBY可以实现原子计数2、 使用List实现队列 特点:允许重复 内部实现:List实现为一个双向链表,即可以支持反向查原创 2017-08-28 22:26:02 · 344 阅读 · 0 评论 -
Redis Sentinel基础知识
1、 Redis Sentinel(哨兵机制)支撑了Redis高可用性,能够支持Redis在特定的故障下完成故障转移和自我修复,保证服务的连续性2、 Redis Sentinel功能 (1) 监控:Sentinel持续检查Master和Slave是否处于正常工作状态 (2) 通知:暴露接口给外部应用程序,当被监控的Redis实例发生故障时,自动通知管理者 (3) 自动故障转移:当Maste原创 2017-07-26 23:04:30 · 664 阅读 · 0 评论 -
Redis主从复制基础知识
1、主从复制机制 (1)主节点会将客户端的操作指令发送给从节点执行 (2)主从节点由于未知原因断开后,从节点会主动尝试重新连接,并进行【增量同步】,即只提取失联期间错过的命令 (3)如果【增量同步】失败,则会执行【全量重新同步】(主节点生成一个包含全部数据的快照,发送给从节点2、为了保证低延迟和高性能,Redis采用异步复制。如果客户端想要执行同步复制,可以显式执行WAIT命令。 (1)Ma原创 2017-07-26 22:27:42 · 266 阅读 · 0 评论 -
记录Redis存储对象的问题
1、Redis可以用来存储Java对象,Jedis有一个方法 String redis.clients.jedis.BinaryJedis.set(byte[] key, byte[] value)Set the string value as value of the key. The string can't be longer than 1073741824 bytes (1 GB). Tim原创 2017-07-13 17:33:48 · 1022 阅读 · 0 评论 -
Redis客户端简单比较
Redis客户端比较原创 2017-07-26 18:18:08 · 799 阅读 · 0 评论 -
Redis重要概念Master-Slave、Sentinel、Partition、Cluster
前言:一个企业级系统最重要的指标就是“高可用性”和“高性能”如果数据量不大,直接用一个Redis实例即可,读写均走Master如果数据量很大,为了减轻单个Redis实例压力,采取写到Master、读走Slave,前提是Slave会同步Master全量数据。Master-Slave(主从复制)解决了“读”性能问题,并没有解决“写”性能问题,也没用解决“高可用性”问题为了保证高可用,引入了Sentine原创 2017-07-26 18:13:59 · 1575 阅读 · 0 评论 -
单进程单线程的Redis如何能够高并发
参考文档: (1)http://yaocoder.blog.51cto.com/2668309/888374 (2)http://www.cnblogs.com/syyong/p/6231326.html1、基本原理 采用多路 I/O 复用技术可以让单个线程高效的处理多个连接请求(尽量减少网络IO的时间消耗) (1)为什么不采用多进程或多线程处理? 多原创 2017-08-16 18:34:59 · 33772 阅读 · 10 评论 -
Redis分区理论知识
1、 分区好处 (1)支持多个Redis实例分布在不同机器上,扩展可用内存、CPU及带宽,从而支持更大数据库2、 分区缺点 (1) 不支持涉及多个key操作 (2) 不支持涉及多个Key的事务 (3) ……3、 分区原理 (1) 范围分区:key名称必须为统一格式key_name:ID,根据key ID进行选择,比如有四个实例0,1,2,3,ID=0-1000存储到instance原创 2017-07-17 22:22:29 · 608 阅读 · 0 评论 -
Guava缓存
1、缓存(Guava Cache等)使用场景(1)目标数据经常重复被访问(2)目标数据计算代价比较高(3)目标数据对实时性要求不高2、Guava Cache与ConcurrentMap区别(1)Guava Cache通常被设定为自动回收元素,ConcurrentMap只有显式删除,否则永久占用内存3、Guava Cache基本原理【获取缓存】-【如果没有原创 2017-12-08 10:04:50 · 331 阅读 · 0 评论