redis学习

todo


这个是链接,讲的很详细,我对照了项目中的代码和源码跟了一遍。

http://swinepig.readthedocs.org/zh_CN/latest/pragram/ShardedJedisPool.html


后续不上过程摘要


搞清楚以下几个问题:

1.一致性hash的代码实现,完成redis集群的处理

见makeObject方法处理过程

2.源码中有linkedmap treemap的使用场景

方法中使用可treemap来存储server的节点,保证可map对象的key值是有序的,key值是对shard- node 机器位置,机器个数字符转的hash,值为server机器的信息

目前是为了判断一致性hash时使用,即:拿到一个请求,hash其key值,选取大于等于某个节点的那个节点。

3.初始化被调用的过程,包括初始化,池化,调用的过程

List<JedisShardInfo> list

ShardedJedisPool pool = new shardedJedisPool(new Config(),list);

config为池的配置信息,

list是server机器服务list;这是创建集群池的过程

调用大致过程为:

ShardedJedis jedis = pool.getResource();

getResource->borrowObject->makeObject

其中makeObject方法里有一致性hash算法把server分散开来

Jedis jedis2=jedis.getShard(key);

最终拿到对象还是通过Jedis对象和redis的server端通信


getResouce的过程



4.spring配置的读取,jedis配置的读取和参数细节做个笔记

spring的配置文件加载类,ClassPathResource类

例子:

Resource resource= new ClassPathResource("xxx.xml");

BeanFactory ctx = new XmlBeanFactory(resource);

String POOL_CONFIG ="jedisPoolConfig";

JedisPoolConfig config = (JedisPoolConfig)xtx.getBean(POOL_CONFIG);



todo链接kafka集群的搭建和使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值