- 浏览: 2253422 次
- 性别:
- 来自: 北京
最新评论
-
yidongnan:
跟 spring boot 配合的例子可以使用这个库https ...
GRPC原理解析 -
kyo472083100:
写得很好,感谢楼主解释得很清晰
Mongodb中Mapreduce特性与原理 -
lanhz:
对于三个节点:1、2、3,如果2向1广播投给2(即2自己),1 ...
Zookeeper选举过程描述与状态迁移 -
Bll:
厉害了
GRPC原理解析 -
QING____:
xiatiandebaofengyu 写道有个问题:发布者在发 ...
Redis编程实践【pub/sub】
文章列表
本文主要展示如何使用spring-data-redis编写事务和pipeline:
1.配置文件:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/s ...
spring-data-redis提供了多种serializer策略,这对使用jedis的开发者而言,实在是非常便捷。sdr提供了4种内置的serializer:
JdkSerializationRedisSerializer:使用JDK的序列化手段(serializable接口,ObjectInputStrean,ObjectOutputStream),数据以字节流存储
StringRedisSerializer:字符串编码,数据以string存储
JacksonJsonRedisSerializer:json格式存储
OxmSerializer:xml格式存储
...
Spring-data-redis:特性与实例
- 博客分类:
- Redis
Spring-data-redis为spring-data模块中对redis的支持部分,简称为“SDR”,提供了基于jedis客户端API的高度封装以及与spring容器的整合,事实上jedis客户端已经足够简单和轻量级,而spring-data-redis反而具有“过度设计”的嫌疑。
jedis客户端在编程实施方面存在如下不足:
1) connection管理缺乏自动化,connection-pool的设计缺少必要的容器支持。
2) 数据操作需要关注“序列化”/“反序列化”,因为jedis的客户端API接受的数据类型为string和byte,对结 ...
Jedis一致性hash与sharding
- 博客分类:
- Redis
Redis-server本身并没有sharding方法,不过我们可以借助客户端程序来实现此功能,Jedis中已经为我们提供了足够的API,接下来通过2种方式分别介绍3个API使用方法。不过首先介绍一下Jedis中sharding原理
一.Sharding与一致性 ...
Jedis编程设计:连接池
- 博客分类:
- Redis
Jedis作为redis的最佳客户端,它提供了连接池的特性,“连接池”在通常情况下可以有效的提高应用的通信能力,并且这是一种良好的设计模式。Jedis的连接池设计基于apache commons-pool原生库,仅作了简单的封装;在本文中,我将介绍如何使用jedisPool进行程序设计。
一.连接池基本参数详解
maxActive: 链接池中最大连接数,默认为8.
maxIdle: 链接池中最大空闲的连接数,默认为8.
minIdle: 连接池中最少空闲的连接数,默认为0.
maxWait: 当连接池资源耗尽时,调用者最大阻塞的时间,超时将跑出异常。单位,毫秒数;默 ...
Redis提供了大量的指令用来查看server信息的指令,此文仅作总结:
1. Auth: 与需要密码验证的server进行链接,有两种方式:
> ./redis-cli -a 0123456
> ./redis-server
OK
> auth 0123456
2. Select: 选择需要使用的database索 ...
Redis sentinel(哨兵)模块已经被集成在redis2.4+的版本中,尽管目前不是release,不过可以尝试去使用和了解,事实上sentinel还是有点复杂的. sentinel主要功能就是为Redis M-S(master,slaves)集群提供了1)master存活检测 2)集群中M-S服务监控 3) 自动故障转移,M-S角色转换等能力,从一个方面说是提高了redis集群的可用性.
一般情况下,最小M-S单元各有一个maste和slave组成,当master失效后,sentinel可以帮助我们自动将slave提升为master;有了sentinel组件,可 ...
Redis配置文件详解
- 博客分类:
- Redis
一.前言: redis.conf文件位于根目录下,下载的redis.zip文件解压.可以通过如下手段使用redis配置信息:
1) 直接"make".此后redis server将会使用内置的默认配置项;比如port为6397.
2) 在"make"之前修改redis.h源码中相关配置,然后在redis根目录下执行"make".此后redis将会使用指定的配置信息.(不建议,)
3) 通过修改可以通过编辑redis.conf文件来调整相关配置;不过启动时必须手动指定配置文件路径(--include).
...
Redis中数据存储模式有2种:cache-only,persistence;cache-only即只做为“缓存”服务,不持久数据,数据在服务终止后将消失,此模式下也将不存在“数据恢复”的手段,是一种安全性低/效率高/容易扩展的方式;persistence即为缓存 ...
Redis数据结构与存储
- 博客分类:
- Redis
一.概述:
Redis从大的方面来说,就是一个K-V数据库(或cache);但是redis还提供了对复杂数据结构的操作,比如set/list/map,因此它需要具备对复杂数据的高效查询;此外它还提供了故障恢复特性,因此它需要具备 ...
Redis编程实践【protocol】
- 博客分类:
- Redis
Redis Protocol即为client与server交互时,所使用的数据格式;符合格式的数据能够被server端解析并返回结果,client端如果按照格式要求既可以解析“结果”并将结构化数据反馈给调用者。有些时候,我们可以通过改造协议的方 ...
Redis编程实践【pub/sub】
- 博客分类:
- Redis
Redis或许已经在很多企业开始推广并试水,本文也根据个人的实践,简单描述一下Redis在实际开发过程中的使用(部署与架构,稍后介绍),程序执行环境为java + jedis,关于spring下如何集成redis-api,稍后介绍吧。
前 ...
Redis编程实践【pipeline和事务】
- 博客分类:
- Redis
Redis或许已经在很多企业开始推广并试水,本文也根据个人的实践,简单描述一下Redis在实际开发过程中的使用(部署与架构,稍后介绍),程序执行环境为java + jedis,关于spring下如何集成redis-api,稍后介绍吧。
前言:下载redis-2.6.2,安装好redis之后,请在redis.conf文件中,将如下3个配置属性开启(仅供测试使用):
##客户端链接的端口,也是server端侦听client链接的端口
##每个client实例,都将和server在此端口上建立tcp长链接
port 6379
## server端绑定的ip地址,如果一 ...
我们需要一个“单点worker”系统,此系统来确保系统中定时任务在分布式环境中,任意时刻只有一个实例处于活跃;比如,生产环境中,有6台机器支撑一个应用,但是一个应用中有30个定时任务,这些任务有些必须被在“单线程”环境中运行(例如“数据统计”任务),避免并发的原因不是在java层面,可能是在操作db数据时,或者是在消息消费时,或者是信息推送时等。某个指标的“数据统计”任务,每天只需要执行一次,即使执行多次也是妄费,因为这种类型的定时任务,需要被“单点”。同时,如果一个任务在没有报告结果的情况下异常推出,我们仍然期望集群中其他实例能够主动“接管”它。在实现不良好的架构中,可能有些开发 ...
ConfigServer从业务需要上来说,作为一个全局配置管理中心,负责保存公用服务中的服务接口/server配置/通讯网关/全局权限等;对服务消费方而言,可以良好的解偶对硬编码配置的依赖,并可以实现服务的动态管理等。
系统配置数据普遍具有“类别多”,“数据小”,“非关系型”,并要求存储系统具备高效的存取能力和健壮性,本例使用zookeeper来简单实现此功能。如下代码仅作参考。
1. TestMain.java:测试引导类。
2. ConfigManager.java: 配置管理类,负责管理“服务类型”(serverType).可以通过向configManager提交“服务类型 ...