Redis
贾诩是也
走过很多弯路,一直坚强、执着的眺望着远方、、、一个听着小米布斯故事成长起来的老码农。不忘初心,方得始终、、、给自己鼓劲加油,为这个时代华丽的时代喝彩!
展开
-
java对redis的基本操作(1)
一、server端安装 1、下载 https://github.com/MSOpenTech/redis 可看到当前可下载版本:redis2.6 下载windows平台文件: 解压后,选择当前64位win7系统对应的版本: 2、安装 1)解压后将转载 2017-07-03 19:40:12 · 285 阅读 · 0 评论 -
redisson client 介绍及优缺点 (18)
由于redisson是2014年1月份才发布的开源项目,对于很多使用redis的用户来说,还是个新东西,关于redisson的文档除了github上边有简单介绍之外,其它网站还没有,所以我基于对源码的理解还有github介绍,简单介绍下redisson。 redisson实现了分布式和可扩展的java数据结构,支持的数据结构有:List, Set, Map, Queue, So转载 2017-07-06 00:03:07 · 2992 阅读 · 0 评论 -
再论Redis与Memcached的区别
结论:Redis支持服务器端的数据操作:Redis相比Memcached来说,拥有更多的数据结构和并支持更丰富的数据操作,通常在Memcached里,你需要将数据拿到客户端来进行类似的修改再set回去。这大大增加了网络IO的次数和数据体积。在Redis中,这些复杂的操作通常和一般的GET/SET一样高效。所以,如果需要缓存能够支持更复杂的结构和操作,那么Redis会是不错的选择。内存使原创 2017-08-20 19:37:07 · 230 阅读 · 0 评论 -
Jedis Pool使用原理及源码
1,JedisPool的使用 //WHEN_EXHAUSTED_FAIL = 0; 直接抛出异常throw new NoSuchElementException("Pool exhausted"); //WHEN_EXHAUSTED_BLOCK = 1;borrowO原创 2017-08-27 18:20:39 · 1555 阅读 · 0 评论 -
Redis系列之10分钟玩转Redis(一):
1. Redis介绍Redis是一个开源的使用ANSI C语言编写、基于内存的Key-Value数据库。它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。Redis支持主从同步,数据可以从主服务器向任意数量的从服务器上同步,由于完全实现了发布/订阅机制,使得从数转载 2017-09-28 23:11:47 · 394 阅读 · 0 评论 -
Redis系列之Redis主从同步,读写分离(二)
1. Redis主从同步Redis支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,同步使用的是发布/订阅机制。2. 配置主从同步Mater Slave的模式,从Slave向Master发起SYNC命令。可以是1 Master 多Slave,可以分层,Slave下可以再接Slave,可扩展成树状结构。2.1 配置Mater,Slave配置非常简单,只需在slave转载 2017-09-28 23:14:36 · 388 阅读 · 0 评论 -
Redis系列之复制(四)
一、复制基本配置与演示 为了避免单点故障,Redis提供了复制功能,可以实现自动同步的过程。 1、配置 同步后的数据分为两类:一类是主数据库(master),一类是从数据库(slave)。主数据库可以进行读写操作,当发生写操作时自动将数据同步给从数据库。而从数据一般只读,并接受主数据库同步过来的数据。 在Redis使用复制功能,只需要在从数据库的配置文件中加入"salveo转载 2017-09-28 23:18:38 · 597 阅读 · 0 评论 -
Redis系列之持久化(三)
一、Redis持久化 Redis是一个支持持久化的内存数据库,redis需要经常将内存中的数据同步到磁盘来保证持久化。 redis提供了不同级别的持久化方法:Snapshotting(快照,默认方式):能够在指定的时间间隔对你的操作进程快照存储Append-only file(缩写aof):记录每次对服务器写的操作,当服务器重启时会重新执行这些命令来恢复原始的数据如果你只希望你转载 2017-09-28 23:17:53 · 403 阅读 · 0 评论 -
Jedis Cluster实现redis的keys命令的方法(9)
由于JedisCluster没有提供对keys命令的封装,只能自己实现:先定义接口。使用TreeSet返回,是为了可以方便地利用它的first()方法:[java] view plain copypublic interface IRedisOperator { /** * 根据patt转载 2017-07-03 20:04:50 · 2827 阅读 · 0 评论 -
Redis与Memcached的区别 (15)
传统MySQL+ Memcached架构遇到的问题 实际mysql是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访问,很多公司都曾经使用过这样的架构,但随着业务数据量的不断增加,和访问量的持续增长,我们遇到了很多问题: 1.MySQL需要不断进行拆库拆表,Memcached也需不断跟着扩容,扩容和维护工作占据大量开发时间。 2.M转载 2017-07-03 20:30:55 · 621 阅读 · 0 评论 -
redis持久化,主从及数据备份(2)
在在项目里已经大量使用Redis了,为了提高redis的性能和可靠性我们需要知道和做到以下几件事:常用内存优化手段与参数redis的性能如何是完全依赖于内存的,所以我们需要知道如何来控制和节省内存。首先最重要的一点是不要开启Redis的VM选项,即虚拟内存功能,这个本来是作为Redis存储超出物理内存数据的一种数据在内存与磁盘换入换出的一个持久化策略,但是其内存管理成本非常的高转载 2017-07-03 19:44:44 · 498 阅读 · 0 评论 -
Redis持久化 (17)
Redis是一个支持持久化的内存数据库,也就是说Redis需要经常将内存中的数据同步到磁盘来保证持久化。redis支持四种持久化方式,一是 Snapshotting(快照)也是默认方式;二是Append-only file(缩写aof)的方式;三是虚拟内存方式;四是diskstore方式。下面分别介绍之。(一)Snapshotting 快照是默认的持久化方式。这种方转载 2017-07-03 20:58:38 · 289 阅读 · 0 评论 -
Redis主从同步原理 (16)
和MySQL主从复制的原因一样,Redis虽然读取写入的速度都特别快,但是也会产生读压力特别大的情况。为了分担读压力,Redis支持主从复制,redis的主从结构可以采用一主多从或者级联结构,下图为级联结构。 Redis主从复制可以根据是否是全量分为全量同步和增量同步。1 全量同步 Redis全量复制一般发生在Slave初始化阶段,这时Slave需要将Master上转载 2017-07-03 20:57:15 · 495 阅读 · 0 评论 -
两种分布式锁实现方案二(14)
四。方案2,基于Redis的分布式锁[java] view plain copy /** * 分布式锁工厂类 */ public class RedisLockUtil { private static final Logger logger = Logger.getLogger(RedisLockUtil.class); privat转载 2017-07-03 18:24:53 · 347 阅读 · 0 评论 -
Redis笔记,主从复制 (2.1)
单台Redis会遇到单点故障的问题,为了解决redis的高可用,主从复制应该是学习的第二个步骤。本文想达到的目的是,一个master带一个slave,而slave又带了一个slave,这样的好处是,当master故障后,直接把slaver1改为master,其他的配置不需要修改,服务又可以正常使用。作为master的redis配置文件不需要修改,此处只修改slave1和转载 2017-07-03 19:49:39 · 253 阅读 · 0 评论 -
Redis笔记,添加密码并修改默认端口后的主从同步 (3)
今天发现在Redhat as 5上编译2.6.14会报错,所以下面的演示基于2.4.18,报错信息:[root@as5 src]# uname -aLinux as5.cooly.slum 2.6.18-8.el5xen #1 SMP Fri Jan 26 14:42:21 EST 2007 i686 i686 i386 GNU/linux[root@as5 src]# make转载 2017-07-03 19:51:00 · 401 阅读 · 0 评论 -
Jedis分片连接池(分布式) (4)
一下内容来自网络,但是很多细节没有写出来,所以我经过自己琢磨,终于找到原因了。Redis-2.4.15目前没有提供集群的功能,redis作者在博客中说将在3.0中实现集群机制。目前Redis实现集群的方法主要是采用一致性哈稀分片(Shard),将不同的key分配到不同的redis server上,达到横向扩展的目的。下面来介绍一种比较常用的分布式场景:在读写操作比较均匀且实转载 2017-07-03 19:54:17 · 280 阅读 · 0 评论 -
Redis 事务 (5)
Redis 提供的事务机制与传统的数据库事务有些不同,传统数据库事务必须维护以下特性:原子性(Atomicity), 一致性(Consistency), 隔离性(Isolation), 持久性(Durability),简称ACID。我们逐项考察下 Redis 在事务的 ACID 上做出的权衡与取舍:原子性(Atomicity)原子意味着操作的不可再分,要么执行要么不转载 2017-07-03 19:56:34 · 273 阅读 · 0 评论 -
Web系统大规模并发——电商秒杀与抢购 (6)
电商的秒杀和抢购,对我们来说,都不是一个陌生的东西。然而,从技术的角度来说,这对于Web系统是一个巨大的考验。当一个Web系统,在一秒钟内收到数以万计甚至更多请求时,系统的优化和稳定至关重要。这次我们会关注秒杀和抢购的技术实现和优化,同时,从技术层面揭开,为什么我们总是不容易抢到火车票的原因? 一、大规模并发带来的挑战 在过去的工作中,我曾经面对过5w每秒的高并发秒杀功能,转载 2017-07-03 19:57:44 · 346 阅读 · 0 评论 -
Java客户端Jedis的八种调用方式(事务、管道、分布式)介绍 (7)
一、普通同步方式最简单和基础的调用方式,@Testpublic void test1Normal() { Jedis jedis = new Jedis("localhost"); long start = System.currentTimeMillis(); for (int i = 0; i < 100000; i++) { String转载 2017-07-03 20:01:17 · 298 阅读 · 0 评论 -
Jedis使用总结(8)
前段时间细节的了解了Jedis的使用,Jedis是redis的java版本的客户端实现。本文做个总结,主要分享如下内容:【pipeline】【分布式的id生成器】【分布式锁【watch】【multi】】【redis分布式】好了,一个一个来。一、 Pipeline官方的说明是:starts a pipeline,which is a very efficient way to s转载 2017-07-03 20:04:06 · 305 阅读 · 0 评论 -
Redis中PipeLine使用(11)
(一)简介 Redis客户端与redis之间使用TCP协议进行连接,一个客户端可以通过一个socket连接发起多个请求命令。每个请求命令发出后client通常会阻塞并等待redis服务处理,redis处理完后请求命令后会将结果通过响应报文返回给client,因此当执行多条命令的时候都需要等待上一条命令执行完毕才能执行,如:get ‘0’,get ‘1’,get ‘2’其执行转载 2017-07-03 20:22:03 · 5709 阅读 · 0 评论 -
基于Redis的在线用户列表解决方案 (12)
前言: 由于项目需求,需要在集群环境下实现在线用户列表的功能,并依靠在线列表实现用户单一登陆(同一账户只能一处登陆)功能: 在单机环境下,在线列表的实现方案可以采用SessionListener来完成,当有Session创建和销毁的时候做相应的操作即可完成功能及将相应的Session的引用存放于内存中,由于持有了所有的Session的引用,故可以方便的实现用户单一登陆的功能(比转载 2017-07-03 20:24:56 · 465 阅读 · 0 评论 -
两种分布式锁实现方案一(13)
一。为何使用分布式锁?当应用服务器数量超过1台,对相同数据的访问可能造成访问冲突(特别是写冲突)。单纯使用关系数据库比如MySQL的应用可以借助于事务来实现锁,也可以使用版本号等实现乐观锁,最大的缺陷就是可用性降低(性能差)。对于GLEASY这种满足大规模并发访问请求的应用来说,使用数据库事务来实现数据库就有些捉襟见肘了。另外对于一些不依赖数据库的应用,比如分布式文件系统,为了保证同一文件在大转载 2017-07-03 18:23:06 · 421 阅读 · 0 评论 -
Java使用Pipeline对Redis批量读写(10)
edis的管道(Pipelining)操作是一种异步的访问模式,一次发送多个指令,不同步等待其返回结果。这样可以取得非常好的执行效率。这就是管道,调用方法如下: @Test public void test3Pipelined() { Jedis jedis = new Jedis("localhost"); Pipeline p转载 2017-07-03 20:16:47 · 3210 阅读 · 0 评论