前台的商品数据(图片等加载缓慢)查询,先从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:
1 <!-- redis连接池 --> 2 <bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig"> 3 <property name="maxTotal" value="2000"></property> 4 <property name="maxIdle" value="20"></property> 5 </bean> 6 <!-- 创建集群对象 --> 7 <bean class="redis.clients.jedis.JedisCluster"> 8 <constructor-arg name="nodes"> 9 <set> 10 <bean class="redis.clients.jedis.HostAndPort"> 11 <constructor-arg name="host" value="192.168.66.66"></constructor-arg> 12 <constructor-arg name="port" value="7001"></constructor-arg> 13 </bean> 14 15 <bean class="redis.clients.jedis.HostAndPort"> 16 <constructor-arg name="host" value="192.168.66.66"></constructor-arg> 17 <constructor-arg name="port" value="7002"></constructor-arg> 18 </bean> 19 20 <bean class="redis.clients.jedis.HostAndPort"> 21 <constructor-arg name="host" value="192.168.66.66"></constructor-arg> 22 <constructor-arg name="port" value="7003"></constructor-arg> 23 </bean> 24 25 <bean class="redis.clients.jedis.HostAndPort"> 26 <constructor-arg name="host" value="192.168.66.66"></constructor-arg> 27 <constructor-arg name="port" value="7004"></constructor-arg> 28 </bean> 29 30 <bean class="redis.clients.jedis.HostAndPort"> 31 <constructor-arg name="host" value="192.168.66.66"></constructor-arg> 32 <constructor-arg name="port" value="7005"></constructor-arg> 33 </bean> 34 35 <bean class="redis.clients.jedis.HostAndPort"> 36 <constructor-arg name="host" value="192.168.66.66"></constructor-arg> 37 <constructor-arg name="port" value="7006"></constructor-arg> 38 </bean> 39 40 <bean class="redis.clients.jedis.HostAndPort"> 41 <constructor-arg name="host" value="192.168.66.66"></constructor-arg> 42 <constructor-arg name="port" value="7007"></constructor-arg> 43 </bean> 44 45 <bean class="redis.clients.jedis.HostAndPort"> 46 <constructor-arg name="host" value="192.168.66.66"></constructor-arg> 47 <constructor-arg name="port" value="7008"></constructor-arg> 48 </bean> 49 </set> 50 </constructor-arg> 51 <constructor-arg name="poolConfig" ref="poolConfig"></constructor-arg> 52 </bean>
通过JedisCluster的方法进行缓存的操作;
获取数据后,添加缓存:
在获取数据库数据前,先从缓存中获取:
1 try { 2 String adJson = jedisDao.hget(INDEX_CACHE, categoryId+""); 3 if(StringUtils.isNotBlank(adJson)){ 4 List<AdItem> adList = JsonUtils.jsonToList(adJson, AdItem.class); 5 return adList; 6 } 7 } catch (Exception e) { 8 e.printStackTrace(); 9 }
缓存同步:
数据添加,修改,删除方法中设置清除缓存:
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:redis集群配置,spring整合jedis,缓存同步 - Python技术站