redis集群配置,spring整合jedis,缓存同步
前台的商品数据(图片等加载缓慢)查询,先从redis缓存查询数据。
redis是一个nosql数据库,内存版数据库,读取速度11w/s。本身具有内存淘汰机制,是单线程服务器(分时操作系统),线程安全。
linux中redis安装(单机版):make;
;
修改为后台启动vim redis.conf;
;(单机redis配置密码验证,修改参数 requirepass 密码;后台启动 ./redis.server ../redis.conf;带密码登录 ./redis.cli -a password)
查看进程
;
虚拟机模拟redis集群的搭建:

搭建步骤:



vim redis.conf,
复制7001,依次修改其他的端口;


登录集群:

查看节点信息:

主机用于写入,从机用作备份;
存入的数据经过CRC算法指定hash槽,指向磁盘空间位置;
添加redis单机到集群:

添加的都会是master;
重新分配存储空间:
./redis-trib.rb reshard 192.168.74.132:7001 表示重新分配7001所在的集群(注意)
添加从节点:

再给7008分配空间即可;
redis集群融入到业务中:
导包

存储到redis集群中的数据,会随机分配到其中一个redis中;
spring整合jedis:
<!-- redis连接池 -->
<bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig">
<property name="maxTotal" value="2000"></property>
<property name="maxIdle" value="20"></property>
</bean>
<!-- 创建集群对象 -->
<bean class="redis.clients.jedis.JedisCluster">
<constructor-arg name="nodes">
<set>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="192.168.66.66"></constructor-arg>
<constructor-arg name="port" value="7001"></constructor-arg>
</bean> <bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="192.168.66.66"></constructor-arg>
<constructor-arg name="port" value="7002"></constructor-arg>
</bean> <bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="192.168.66.66"></constructor-arg>
<constructor-arg name="port" value="7003"></constructor-arg>
</bean> <bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="192.168.66.66"></constructor-arg>
<constructor-arg name="port" value="7004"></constructor-arg>
</bean> <bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="192.168.66.66"></constructor-arg>
<constructor-arg name="port" value="7005"></constructor-arg>
</bean> <bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="192.168.66.66"></constructor-arg>
<constructor-arg name="port" value="7006"></constructor-arg>
</bean> <bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="192.168.66.66"></constructor-arg>
<constructor-arg name="port" value="7007"></constructor-arg>
</bean> <bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="192.168.66.66"></constructor-arg>
<constructor-arg name="port" value="7008"></constructor-arg>
</bean>
</set>
</constructor-arg>
<constructor-arg name="poolConfig" ref="poolConfig"></constructor-arg>
</bean>
通过JedisCluster的方法进行缓存的操作;
获取数据后,添加缓存:

在获取数据库数据前,先从缓存中获取:
try {
String adJson = jedisDao.hget(INDEX_CACHE, categoryId+"");
if(StringUtils.isNotBlank(adJson)){
List<AdItem> adList = JsonUtils.jsonToList(adJson, AdItem.class);
return adList;
}
} catch (Exception e) {
e.printStackTrace();
}
缓存同步:
数据添加,修改,删除方法中设置清除缓存:

redis集群配置,spring整合jedis,缓存同步的更多相关文章
- Redis集群与spring的整合
上一篇详细的赘述了Redis的curd操作及集群的搭建.下面我们开始将他整合到我们实际的项目中去.我的项目采用的是标准的ssm框架,ssm框架这里不说,直接开始整合. 首先在maven管理中将我们的j ...
- springboot和Redis集群版的整合
此篇接上一个文章springboot和Redis单机版的整合 https://www.cnblogs.com/lin530/p/12019023.html 下面接着介绍和Redis集群版的整合. 1. ...
- java操作redis集群配置[可配置密码]和工具类(比较好用)
转: java操作redis集群配置[可配置密码]和工具类 java操作redis集群配置[可配置密码]和工具类 <dependency> <groupId>red ...
- java操作redis集群配置[可配置密码]和工具类
java操作redis集群配置[可配置密码]和工具类 <dependency> <groupId>redis.clients</groupId> & ...
- Linux系统下安装Redis和Redis集群配置
Linux系统下安装Redis和Redis集群配置 一. 下载.安装.配置环境: 1.1.>官网下载地址: https://redis.io/download (本人下载的是3.2.8版本:re ...
- redis简介以及redis集群配置
简介: redis 是一个高性能的key-value数据库..它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted set --有序 ...
- Redis集群配置(linux)
*弄了一天,有问题直接问我.qq:137416943 1.redis集群的配置和简单使用 Redis集群配置 0.首先要配置环境: 0.1 安装c++ yum install gcc-c++ ...
- centos6.5下redis集群配置(多机多节点)
可参考官网文档:redis集群配置 需要注意的是,集群中的每个节点都会涉及到两个端口,一个是用于处理客户端操作的(如下介绍到的6379/6380),另一个是10000+{监听端口},用于集群各个节点间 ...
- spring 使用redis集群配置
上面两篇介绍了redis集群的配置合一些基本的概念,所以接下来当然是要在项目中使用咯,redis的java支持已经做的非常好了,所以我们来试着使用这些api来进行redis的操作,首先我们需要操作re ...
随机推荐
- Python进阶---面向对象第二弹
python类的继承原理 一.类的继承顺序 class A(object): def test(self): print('from A') passclass B(A): # def test(se ...
- pt-tcp-model
http://blog.9minutesnooze.com/analyzing-http-traffic-tcpdump-perconas-pttcpmodel/ #获取200k个packets tc ...
- 【原创】抓个Firefox的小辫子,围观群众有:Chrome、Edge、IE8-11
前言 很多人都知道我们在做FineUI控件库,在这 9 年多的时间里,在和浏览器无数次的交往中,也发现了多个浏览器自身的BUG,并公开出来方便大家查阅: 分享IE7一个神奇的BUG(不是封闭标签的问题 ...
- CS窗体程序数据列表分页
以前,觉得winform程序分页很无趣,也没实际意义,直到近期的项目实践中让我认识到原来winform数据列表分页也是非常有必要的,因为由于数据量过大的情况,当窗体在初始加载数据的时候如果不做条件的限 ...
- 深入讲解HashMap原理
1. HashMap概述: HashMap是基于哈希表的Map接口的非同步实现.此实现提供所有可选的映射操作,并允许使用null值和null键.此类不保证映射的顺序,特别是它不保证该顺序恒久不变 ...
- PHP 面试时常考的文件操作函数
前两天面试的时候,笔试要求写一些文件操作类函数,什么遍历目录获取文件扩展名之类的,回来后大致总结了一下PHP中一些常见的文件操作函数分享一下. 1.使用递归删除目录及目录下所有文件的方法. funct ...
- 继webpack后又一打包神器Parcel
前言: 在继grunt.gulp实现自动化构建之后,webpack又引领前端打包潮流,众所周知的是,vue-cli的脚手架就是基于webpack进行项目打包的.而webpack还在上升的势头的时候,又 ...
- Sql Server 的服务器类型
Sql Server 提供了四种服务器类型: 如图所示 : 1, 数据库引擎 2, Analysis Services (分析服务 ) 3, Reporting Services (报告服务) ...
- 大白话Vue源码系列(02):编译器初探
阅读目录 编译器代码藏在哪 Vue.prototype.$mount 构建 AST 的一般过程 Vue 构建的 AST 题接上文,上回书说到,Vue 的编译器模块相对独立且简单,那咱们就从这块入手,先 ...
- eclipse中将项目打包成jar的两种方法,及其问题与解决方法
第一种:利用eclipse中自带的export功能 第一种方法分两种情况先来看第一种情况:没有引用外部jar的项目打包 步骤一:右键点击项目选择导出(export),选择java>jar文件(不 ...