初识缓存分片框架Redic

点击Redic进入我们的项目主页,获得更多信息和内容。

缓存分片

Redic是什么?

Redic是一个简单易用的Redis缓存客户端,与Spring无缝结合,简单导入Spring环境或者配置Redic Bean即可使用,并且支持读写分离和分片。

什么时候需要Redic?

Jedis实现的ShardedJedisPool是基于一致性hash实现的,当某个节点出现问题时,缓存操作会自动漂移到这个节点后面的节点,这些操作都不是透明的,如果线上出现了问题,定位问题比较困难,Redic采用简单的哈希取模来路由分片数据,实现简单、性能高并且容易定位问题。因此,当你需要一个简单有效的缓存分片框架的时候,用Redic没错的。

如何使用Redic?

1. 配置

单节点开发配置、多节点线上配置、多节点读写分离线上配置参考如下。

1). 单节点开发配置

  • 导入开发测试使用的Spring环境。 <import resource="classpath:spring/application-context-redic-dev.xml"/>
  • 配置单节点属性 redic.cache.node.conn1=localhost:6379

2). 多节点线上配置

  • 在Spring环境中配置多节点的Redic Bean。 <bean id="redic" class="com.robert.redis.redic.Redic" init-method="init"> <property name="nodeConnStrs"> <list> <value>${redic.cache.node.conn1}</value> <value>${redic.cache.node.conn2}</value> </list> </property> </bean>
  • 配置单节点属性 redic.cache.node.conn1=localhost:6379 redic.cache.node.conn2=ip:6379

3). 多节点读写分离线上配置

  • 在Spring环境中配置多节点的Redic Bean。 <bean id="redic" class="com.robert.redis.redic.Redic" init-method="init"> <property name="readWriteSeparate" value=${redic.cache.readWriteSeparate}> <property name="nodeConnStrs"> <list> <value>${redic.cache.node.conn1}</value> <value>${redic.cache.node.conn2}</value> </list> </property> </bean>
  • 配置单节点属性 redic.cache.readWriteSeparate=true redic.cache.node.conn1=localhost:6379,localhost:6380 redic.cache.node.conn2=ip:6379,ip:6380

2. 使用

Redic redic = (Redic) applicationContext.getBean("redic");   
redic.set("name", "robert");
AssertJUnit.assertEquals("robert", redic.get("name"));

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Dawnzhang的开发者手册

spring cloud(学习笔记)高可用注册中心(Eureka)的实现(一)

最近在学习的时候,发现微服务架构中,假如只有一个注册中心,那这个注册中心挂了可怎么办,这样的系统,既不安全,稳定性也不好,网上和书上找了一会,发现这个sprin...

16120
来自专栏北京马哥教育

一图掌握bash shell编程

? 一张图掌握bash shell编程, 总结自 The Linux Command Line Ch25~Ch37. PDF版本下载请查看: 链接: http...

34180
来自专栏xingoo, 一个梦想做发明家的程序员

[大数据之Sqoop] —— Sqoop初探

Sqoop是一款用于把关系型数据库中的数据导入到hdfs中或者hive中的工具,当然也支持把数据从hdfs或者hive导入到关系型数据库中。 Sqoop也...

27890
来自专栏debugeeker的专栏

基于现有的Linux LiveCD加入自己的内核和ramfs

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xuzhina/article/detai...

8810
来自专栏木子昭的博客

Ubuntu运行GitHub获取的Django项目准备工作从GitHub克隆项目安装数据库(要设置密码)搭建python环境修改项目配置文件将测试数据库导入到本地新建的数据库中运行项目

经常在github看到一些优秀的Django项目,但Django的运行需要大量的依赖,这里分享一下,从github获取Django项目,并在本地运行项目的小经...

29530
来自专栏晨星先生的自留地

oreint db 远程代码执行漏洞

20040
来自专栏lgp20151222

Weblogic Exception in AppMerge flows' progression

原因:经过分析是web.xml配置的问题,有些servlet上面配置了'display-name',这个weblogic是不支持的。 解决:在web.xml中...

39020
来自专栏软件工程师成长笔记

CentOS7安装OracleJDK和JRE

JDK(Java Development Kit)指的是Java开发工具集。JDK是整个Java的核心,包括了Java基础类库、Java运行环境(JRE)和Ja...

48430
来自专栏积累沉淀

centos7 mysql数据库安装和配置

一、系统环境 yum update升级以后的系统版本为 [root@yl-web yl]# cat /etc/redhat-release CentOS Li...

48080
来自专栏算法修养

Flask 学习篇一: 搭建Python虚拟环境,安装flask,并设计RESTful API。

前些日子,老师给我看了这本书,于是便开始了Flask的学习 ? GitHub上的大神,于是我也在GitHub上建了一个Flask的项目。 有兴趣可以看看: ht...

66080

扫码关注云+社区

领取腾讯云代金券