zoukankan      html  css  js  c++  java
  • 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:

     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         }

    缓存同步:

    数据添加,修改,删除方法中设置清除缓存:

  • 相关阅读:
    STM32的DMA
    stm32f1的IO,推挽与开漏
    STM32_GPIO配置及库函数讲解——独立按键
    STM32-外部中断学习笔记
    关于STM32的NVIC问题
    梯度下降<1>
    QString toInt()函数慎用
    linux→查看当前系统时间和修改系统当前时间
    oracle函数→数值型函数
    oracle函数→字符型函数
  • 原文地址:https://www.cnblogs.com/mryangbo/p/8045320.html
Copyright © 2011-2022 走看看