NoSQL-键值-Redis/Geode/VoltDB
五柳-先生
宅边有五柳树,因以为号焉。
展开
-
redis学习笔记——RDB和AOF持久化二
上一篇对RDB的源码分析是比较多的,但是AOF持久化执行进行了一些理论上的分析和概念的说明。本来想自己偷一些懒,将上篇文章中最后所给链接的AOF实现代码随便过一过算了,后来也就是在过的过程中发现自己这也看不懂那也看不懂才知道AOF的重要性和难度。后来又花了不少时间查阅资料、结合源代码分析,对AOF的大概执行过程有了更深一些的了解,现在就将自己的理解和大家进行分享。其中肯定有理解不正确的地方转载 2016-06-06 21:29:59 · 608 阅读 · 0 评论 -
Redis常见集群方案、Codis实践及与Twemproxy比较
前言诚如开篇文章所言,高效运维包括管理的专业化和技术的专业化。前两篇我们主要在说些管理相关的内容,本篇说一下技术专业化。希望读者朋友们能适应这个转换,谢谢。互联网早在几年前就已进入Web 2.0时代,对后台支撑能力的要求,提高了几十倍甚至几百倍。在这个演化过程中,缓存系统扮演了举足轻重的角色。运维进化到今天,已经不是重复造轮子的时代。所以转载 2016-04-19 20:36:22 · 2053 阅读 · 0 评论 -
基于redis的分布式ID生成器
项目地址https://github.com/hengyunabc/redis-id-generator基于redis的分布式ID生成器。准备首先,要知道redis的EVAL,EVALSHA命令:http://redis.readthedocs.org/en/latest/script/eval.htmlhttp://redis.readthedoc转载 2016-04-19 20:04:30 · 1742 阅读 · 0 评论 -
基于Redis实现分布式锁,Redisson使用及源码分析
在分布式场景下,有很多种情况都需要实现最终一致性。在设计远程上下文的领域事件的时候,为了保证最终一致性,在通过领域事件进行通讯的方式中,可以共享存储(领域模型和消息的持久化数据源),或者做全局XA事务(两阶段提交,数据源可分开),也可以借助消息中间件(消费者处理需要能幂等)。通过Observer模式来发布领域事件可以提供很好的高并发性能,并且事件存储也能追溯更小粒度的事件数据,使各个应用系统拥有更转载 2016-04-19 19:53:56 · 910 阅读 · 0 评论 -
10 个 Redis 建议/技巧
Redis 在当前的技术社区里是非常热门的。从来自 Antirez 一个小小的个人项目到成为内存数据存储行业的标准,Redis已经走过了很长的一段路。随之而来的一系列最佳实践,使得大多数人可以正确地使用 Redis。下面我们将探索正确使用 Redis 的10个技巧。1、停止使用 KEYS *Okay,以挑战这个命令开始这篇文章,或许并不是一个好的方式,但其确实可能是最重要的一点。很转载 2016-04-19 19:46:54 · 445 阅读 · 0 评论 -
360开源的类Redis存储系统:Pika
Pika 是 360 DBA 和基础架构组联合开发的类 Redis 存储系统,完全支持 Redis 协议,用户不需要修改任何代码,就可以将服务迁移至 Pika。有维护 Redis 经验的 DBA 维护 Pika 不需要学习成本。Pika 主要解决的是用户使用 Redis 的内存大小超过 50G、80G 等等这样的情况,会遇到启动恢复时间长,一主多从代价大,硬件成本贵,缓冲区容易写满等问题。转载 2016-05-25 16:23:32 · 3069 阅读 · 0 评论 -
为什么Redis内存不宜过大
这几年的线上业务表明,redis这个内存数据库,它的高性能、稳定性都是不用怀疑的,但我们塞进redis的数据过多,内存过大,那如果出问题,那它可能会带给我们的就是灾难性(我想很多公司都遇到过) 这里列举一下,我们遇到的一些问题:1 主库宕机先来看一下主库宕机容灾过程:如下图在主库宕机的时候,我们最常见的容灾策略为“切主”。具体为从该集群剩余从库中选出一个从库并将其升转载 2016-05-25 16:11:25 · 880 阅读 · 0 评论 -
用最少的机器支撑万亿级访问,微博6年Redis优化历程
微博是从 2010 年开始引入 Redis ,现在 Redis 已经广泛应用于微博的多个业务场景,如关系、计数、通知提醒等,目前 Redis 集群存储超过百亿记录,每天上万亿的读取访问。随着业务的快速发展,我们在使用过程中碰到的问题及解决方法给大家做一个分享。主要包括以下方面: 实现机制高可用、业务极致定制以及服务化。Redis 2.0 时代(2010 - 2011)实现机制高可转载 2016-05-25 16:10:19 · 1645 阅读 · 0 评论 -
基于Redis Sentinel的Redis集群(主从&Sharding)高可用方案
本文主要介绍一种通过Jedis&Sentinel实现Redis集群高可用方案,该方案需要使用Jedis2.2.2及以上版本(强制),Redis2.8及以上版本(可选,Sentinel最早出现在Redis2.4中,Redis2.8中Sentinel更加稳定),Redis集群是以分片(Sharding)加主从的方式搭建,满足可扩展性的要求;Redis Sentinel介绍Redis S转载 2016-05-25 16:07:58 · 400 阅读 · 0 评论 -
【Redis入门】常用工具
1、redis-benchmark redis基准信息,redis服务器性能检测redis-benchmark -h localhost -p 6379 -c 100 -n 100000该命名表示100个并发连接,100000个请求,检测host为localhost 端口为6379的redis服务器的性能 参数详解:执行此命转载 2016-05-25 15:52:56 · 314 阅读 · 0 评论 -
Redis 存储分片之代理服务Twemproxy 测试
概述实际业务场景中单点 Redis 容量、并发都是有限的,所以有 Redis Cluster 的需求。但是官方的 Redis Cluster 一再跳票,还不可用。只好先使用最简单的方式:Proxy。有很多可选,但在大范围生产使用的, Twitter 开源的 Twemproxy 看起来是个理想的选择 – https://github.com/twitter/twemprox转载 2016-05-25 15:49:37 · 1102 阅读 · 0 评论 -
NoSQL之Redis探析
下载地址:wget http://download.redis.io/releases/redis-2.8.8.tar.gz安装steps:1 下载Official Website : http://redis.io/文档地址 address: http://redis.io/documentation主从复制文档地址 : http://www.redis.io/topic转载 2016-05-25 14:49:37 · 568 阅读 · 0 评论 -
redmon:Redis监控管理Web工具
redmon是那种一眼看上去就觉得不错的小工具,而且感觉很轻量级,目前它已经支持实时查看Redis的流量,请求,配置信息,命令行操作等功能,后续还将添加Web端配置修改,慢日志查询等功能。如果有兴趣,你可以去下载一个试玩一下。下载:https://github.com/steelThread/redmon简单安装(目前还木有gem包)$ bundle install$ rub转载 2016-05-25 14:25:18 · 2537 阅读 · 2 评论 -
Redis核心解读-从Master到Slave的Replicantion
简介replication是redis提供的复制功能,用于master提供给slave的数据同步。slave在连接master后,master端会在后台启动一个进程进行rdb文件的建立,当文件建立完成后,发送给slave端,slave端收到后,会通过rdb文件完成对master的复制。Slave端结构定义在了解replicantion核心之前,先了解replicatio转载 2016-05-25 14:17:42 · 3123 阅读 · 0 评论 -
Codis 3.0.1 安装使用文档(官方)
Codis 使用文档Codis 是一个分布式 Redis 解决方案, 对于上层的应用来说, 连接到 Codis Proxy 和连接原生的 Redis Server 没有显著区别 (不支持的命令列表), 上层应用可以像使用单机的 Redis 一样使用, Codis 底层会处理请求的转发, 不停机的数据迁移等工作, 所有后边的一切事情, 对于前面的客户端来说是透明的, 可以简单的认为后边连转载 2016-04-19 20:49:03 · 4940 阅读 · 0 评论 -
Redis复制流程概述
Redis复制流程概述Redis的复制功能是完全建立在之前我们讨论过的基于内存快照的持久化策略基础上的,也就是说无论你的持久化策略选择的是什么,只要用到了Redis的复制功能,就一定会有内存快照发生,那么首先要注意你的系统内存容量规划,原因可以参考我上一篇文章中提到的Redis磁盘IO问题。Redis复制流程在Slave和Master端各自是一套状态机流转,涉及的状态信息是:转载 2016-04-19 20:56:46 · 379 阅读 · 0 评论 -
redis学习笔记——RDB和AOF持久化一
为防止数据丢失,需要将 Redis 中的数据从内存中 dump 到磁盘,这就是持久化。Redis 提供两种持久化方式:RDB 和 AOF。Redis 允许两者结合,也允许两者同时关闭。RDB 可以定时备份内存中的数据集。服务器启动的时候,可以从 RDB 文件中恢复数据集。AOF(append only file) 可以记录服务器的所有写操作。在服务器重新启动的时候,会把所有的写操作转载 2016-06-06 21:28:46 · 794 阅读 · 0 评论 -
redis学习笔记——Redis过期键的删除策略
Redis过期键的删除策略对于过期键一般有三种删除策略定时删除:在设置键的过期时间的同时,创建一个定时器(timer),让定时器在键的过期时间来临时,立即执行对键的删除操作;惰性删除:放任键过期不管,但是每次从键空间中获取键时,都检查取得的键是否过期,如果过期的话,就删除该键;如果没有过期,那就返回该键;定期删除:每隔一段时间,程序就对数据库进行一次检查,删除里面的过期键。至于删除转载 2016-06-06 21:27:46 · 2140 阅读 · 0 评论 -
redis学习笔记——RDB、AOF和复制时对过期键的处理
生成RDB文件在执行SAVE命令或者BGSAVE命令创建一个新的RDB文件时,程序会对数据库中的键进行检查,已过期的键不会被保存到新创建的RDB文件中。举个例子,如果数据库中包含三个键k1、k2、k3,并且k2已经过期,那么当执行SAVE命令或者BGSAVE命令时,程序只会将k1和k3的数据保存到RDB文件中,而k2则会被忽略。因此,数据库中包含过期键不会对生成新的RDB文件造成影转载 2016-06-06 21:25:14 · 583 阅读 · 0 评论 -
深入理解Redis中的主键失效及其实现机制
作为一种定期清理无效数据的重要机制,主键失效存在于大多数缓存系统中,Reids也不例外。在Redis提供的诸多命令中,EXPIRE、EXPIREAT、PEXPIRE、PEXPIREAT以及SETEX和PSETEX均可以用来设置一条Key-Value对的失效时间,而一条Key-Value对一旦被关联了失效时间就会在到期后自动删除(或者说变得无法访问更为准确)。可以说,主键失效这个概念还是比较容易理解转载 2016-06-06 21:14:42 · 411 阅读 · 0 评论 -
Redis中的内存释放与过期键删除
简介在Redis中,内存的大小是有限的,所以为了防止内存饱和,需要实现某种键淘汰策略。主要有两种方法,一种是当Redis内存不足时所采用的内存释放策略。另一种是对过期键进行删除的策略,也可以在某种程度上释放内存。相关数据结构Redis中的数据库结构如下:[cpp] view plain copy print?/转载 2016-06-06 21:02:53 · 2070 阅读 · 0 评论 -
Redis内存回收:LRU算法
http://www.cnblogs.com/WJ5888/p/4371647.htmlRedis:https://github.com/zwjlpeng/Redis_Deep_ReadRedis中采用两种算法进行内存回收,引用计数算法以及LRU算法,在操作系统内存管理一节中,我们都学习过LRU算法(最近最久未使用算法),那么什么是LRU算法呢LRU算法作为内存管理的一转载 2016-06-06 20:53:19 · 461 阅读 · 0 评论 -
redis配置文件redis.conf详细说明
# By default Redis does not run as a daemon. Use 'yes' if you need it.# Note that Redis will write a pid file in /var/run/redis.pid when daemonized.#Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程(守护进程转载 2016-06-06 20:29:06 · 1762 阅读 · 0 评论 -
简单理解Memcached的Slab Allocation
简单理解Memcached的Slab Allocation包含如下内容:Slab AllocationGrowth FactorSlab Allocation的缺点slab AllocationSlab Allocation的原理——将分配的内存分割成各种尺寸的块(chunk), 并把尺寸相同的块分成组(chunk的集合),每个chunk集合被称转载 2016-06-06 19:28:27 · 474 阅读 · 0 评论 -
Memcached 及 Redis 架构分析和比较
Memcached和Redis作为两种Inmemory的key-value数据库,在设计和思想方面有着很多共通的地方,功能和应用方面在很多场合下(作为分布式缓存服务器使用等) 也很相似,在这里把两者放在一起做一下对比的介绍 基本架构和思想 首先简单介绍一下两者的架构和设计思路 Memcached Memcached采用客户端-服务器转载 2016-06-06 19:20:19 · 478 阅读 · 0 评论 -
垃圾收集器:引用计数算法
引用计数算法作为垃圾收集器最早的算法,有其优势,也有其劣势,虽然现在的JVM都不再采用引用计数算法进行垃圾回收【例如Sun的Java hotspot采用了火车算法进行垃圾回收】,但这种算法也并未被淘汰,在著名的单进程高并发缓存Redis中依然采用这种算法来进行内存回收【后绪会以Redis作为例子,说明该算法】什么是引用计数算法直白一点,就是对于创建的每一个对象都有一个与之关联的转载 2016-06-07 20:32:15 · 410 阅读 · 0 评论 -
Redis内存回收:LRU算法
Redis技术交流群 481804090Redis:https://github.com/zwjlpeng/Redis_Deep_ReadRedis中采用两种算法进行内存回收,引用计数算法以及LRU算法,在操作系统内存管理一节中,我们都学习过LRU算法(最近最久未使用算法),那么什么是LRU算法呢LRU算法作为内存管理的一种有效算法,其含义是在内存有限的情况下,当内存容量不转载 2016-06-07 20:29:51 · 594 阅读 · 0 评论 -
redis学习笔记——主从同步(复制)
在Redis中,用户可以通过执行SLAVEOF命令或者设置slaveof选项,让一个服务器去复制(replicate)另一个服务器,我们称呼被复制的服务器为主服务器(master),而对主服务器进行复制的服务器则被称为从服务器(slave),如图所示。假设现在有两个Redis服务器,地址分别为127.0.0.1:6379和127.0.0.1:12345,如果我们向服务器127.0.转载 2016-06-07 19:40:59 · 821 阅读 · 0 评论 -
Redis与Memcached的区别
如果简单地比较Redis与Memcached的区别,大多数都会得到以下观点:1 Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,hash等数据结构的存储。2 Redis支持数据的备份,即master-slave模式的数据备份。3 Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。在Redis中,并不是转载 2016-04-19 22:01:46 · 323 阅读 · 0 评论 -
揭秘微信红包架构、抢红包算法和高并发和降级方案
转自:http://mp.weixin.qq.com/s?__biz=MzIxMTIwNDcxOA==&mid=2649786999&idx=1&sn=76695da2aae04bff6e746100fe81701d与传统意义上的红包相比,近两年火起来的“红包”,似乎才是如今春节的一大重头戏。历经上千年时代传承与变迁,春节发红包早已成为历史沉淀的文化习俗,融入了民族的血脉。按照各家公布的数转载 2016-05-25 09:50:16 · 3212 阅读 · 0 评论 -
利用redis + lua解决抢红包高并发的问题
抢红包的需求分析抢红包的场景有点像秒杀,但是要比秒杀简单点。因为秒杀通常要和库存相关。而抢红包则可以允许有些红包没有被抢到,因为发红包的人不会有损失,没抢完的钱再退回给发红包的人即可。另外像小米这样的抢购也要比淘宝的要简单,也是因为像小米这样是一个公司的,如果有少量没有抢到,则下次再抢,人工修复下数据是很简单的事。而像淘宝这么多商品,要是每一个都存在着修复数据的风险,那如果出故障了转载 2016-05-24 18:04:56 · 804 阅读 · 0 评论 -
redis如何清除所有的key
redis比memcache好的地方之一,如果memcache,恐怕就得关掉重启了。1 使用cliFLUSHDB 清除一个数据库,FLUSHALL清除整个redis数据。2 使用shell redis-cli keys "*" | while read LINE ; do TTL=`redis-cli ttl $LINE`; if [ $TTL -eq -1 ]; then转载 2016-05-24 17:43:40 · 7224 阅读 · 0 评论 -
Redis-主从复制
单台redis会遇到单点故障的问题,为了解决redis的高可用,主从复制应该是学习的第二个步骤。本文想达到的目的是,一个master带一个slave,而slave又带了一个slave,这样的好处是,当master故障后,直接把slaver1改为master,其他的配置不需要修改,服务又可以正常使用。作为master的redis配置文件不需要修改,此处只修改slave1和slave1转载 2014-09-16 14:19:28 · 584 阅读 · 0 评论 -
redis持久化机制
一、Redis提供了哪些持久化机制: 1). RDB持久化: 该机制是指在指定的时间间隔内将内存中的数据集快照写入磁盘。 2). AOF持久化: 该机制将以日志的形式记录服务器所处理的每一个写操作,在Redis服务器启动之初会读取该文件来重新构建数据库,以保证启动后数据库中的数据是完整的。 3). 无持久化: 我们可以通过转载 2014-09-18 19:47:52 · 552 阅读 · 0 评论 -
Redis系统性介绍
Redis系统性介绍作者:nosqlfan on 星期天, 九月 25, 2011 ·2条评论 【阅读:23,833 次】 虽然Redis已经很火了,相信还是有很多同学对Redis只是有所听闻或者了解并不全面,下面是一个比较系统的Redis介绍,对Redis的特性及各种数据类型及操作进行了介绍。是一个很不错的Redis入门教程。1.介绍1.1 Redis转载 2013-09-30 22:40:16 · 793 阅读 · 0 评论 -
Redis实战
目录(?)[+]一Redis简要介绍三运行四测试五关闭六调优七集群配置八主从备份九系统服务 由于前段时间使用Kestrel,同时要操作Memcached及时更新缓存,又要操作database,持久化数据。 貌似Redis既可以当Cache又可以当Queue!于是,今天开始研究Redis!一、Redis简要介绍Redis —— REmote DIctionaryS转载 2013-09-30 22:42:46 · 938 阅读 · 0 评论 -
Redis实战之Redis + Jedis
目录(?)[+]一简单使用Jedis二池化使用Jedis三一致性哈希四Spring封装参考用Memcached,对于缓存对象大小有要求,单个对象不得大于1MB,且不支持复杂的数据类型,譬如SET等。基于这些限制,有必要考虑Redis! 言归正传,目前Redis大概有3中基于Java语言的Client:JredisJedisRedis4J这里只说J转载 2013-09-30 22:42:12 · 1273 阅读 · 0 评论 -
Redis实战之征服 Redis + Jedis + Spring (二)
目录(?)[+]一预期二代码实现保存HMSET获取HMGET不得不说,用哈希操作来存对象,有点自讨苦吃!不过,既然吃了苦,也做个记录,也许以后API升级后,能好用些呢?!或许,是我的理解不对,没有真正的理解哈希表。一、预期接上一篇,扩充User属性: Java代码 public class User转载 2013-09-30 22:41:08 · 1187 阅读 · 0 评论 -
Redis内存存储结构分析
Redis: A persistent key-value database with built-in net interface written in ANSI-C for Posix systems1 Redis 内存存储结构本文是基于 Redis-v2.2.4 版本进行分析.1.1 Redis 内存存储总体结构Redis 是支持多key-value数据库(表)的,并用 Re转载 2013-09-30 22:39:32 · 842 阅读 · 0 评论 -
Redis实战之征服 Redis + Jedis + Spring (一)
目录(?)[+]一简述二配置三GETSETDEL操作保存-SET获取-GET删除-DELTestCaseRedis + Jedis + Spring (一)—— 配置&常规操作(GET SET DEL)接着需要快速的调研下基于Spring框架下的Redis操作。 前文有述,Spring提供了对于Redis的专门支持:spring-data-redis。此外,转载 2013-09-30 22:41:51 · 990 阅读 · 0 评论