? ? ? ? ?最近一直在畫(huà)小程序的界面,感覺(jué)自己都快成為一個(gè)前端工程師了宰啦,尤其是前面做管理后臺(tái)的時(shí)候使用Angular4苏遥,讓自己有點(diǎn)頭大。都快忘記自己是Java開(kāi)發(fā)了赡模。田炭。。上周自己在三臺(tái)服務(wù)器上面搭建了一個(gè)redis集群漓柑,每臺(tái)服務(wù)器創(chuàng)建三個(gè)實(shí)例教硫,端口分別是7000叨吮,7001,7002.....7008瞬矩。搭建過(guò)程中遇到的一個(gè)問(wèn)題就是centos 7配置ruby最高配置2.0.0的版本茶鉴,需要用rvm來(lái)更新ruby。
首先看一下redis 集群的目的是做什么:
隨著企業(yè)數(shù)據(jù)量的增多景用,Redis不論作為數(shù)據(jù)存儲(chǔ)或是緩存涵叮,它的數(shù)據(jù)量也會(huì)逐漸增多,雖然Redis的速度非炒灾可觀围肥,但隨著其中的數(shù)據(jù)量的龐大剿干,并且僅僅在一個(gè)設(shè)備或是一個(gè)Redis實(shí)例中蜂怎,其存取速度也會(huì)大打折扣,所以我們需要在不同的設(shè)備或服務(wù)器上置尔,搭建多個(gè)Redis實(shí)例倉(cāng)庫(kù)杠步,將原來(lái)的Redis的所有的keys分發(fā)到各個(gè)服務(wù)器的Redis上,這就是現(xiàn)在所謂的Redis集群(Redis Cluster)榜轿。
Redis集群中使用哈希槽來(lái)存儲(chǔ)客戶端的keys幽歼,而在Redis中,目前存在16384個(gè)哈希槽谬盐,它們被全部分配給所有的節(jié)點(diǎn)甸私。
ok 在前面我已經(jīng)搭建好集群的環(huán)境。
既然環(huán)境搭建好了飞傀,那就用Spring Boot(已經(jīng)愛(ài)上這個(gè)框架了皇型,雖然公司仍然還在用Spring MVC,Spring砸烦,Mybatis)簡(jiǎn)單連接一下弃鸦。
IDEA新建一個(gè)Spring Boot項(xiàng)目,在新建過(guò)程中幢痘,選中Nosql中的redis唬格,這樣pom文件會(huì)自動(dòng)集成redis。
配置文件中:(簡(jiǎn)單配置一下)
spring.redis.cluster.nodes=115.xxx.xx.xxx:7000,115.xxx.xx.xxx:7001,...,111.xxx.xxx.xx:7008
spring.redis.password=password
單元測(cè)試(Spring Boot 項(xiàng)目下有test文件夾)
package com.example.demo;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
public class DemoApplicationTests {
@Autowired
RedisTemplate<String,String> redisTemplate;
@Test
public void contextLoads() {
}
@Test
public void test(){
ValueOperations<String, String> opsForValue = redisTemplate.opsForValue();
opsForValue.set("redisKey","cluster test");
System.out.println("11"+opsForValue.get("test"));
}
}