標籤:.com nosql資料庫 class dao turn cep ret 資料庫 資料庫資料
前台的商品資料(圖片等載入緩慢)查詢,先從redis緩衝查詢資料。
redis是一個nosql資料庫,記憶體版資料庫,讀取速度11w/s。本身具有記憶體淘汰機制,是單線程伺服器(分時作業系統),安全執行緒。
linux中redis安裝(單機版):make;;
修改為後台啟動;
查看進程;
虛擬機器類比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,緩衝同步