cd redis01
./redis-server redis.conf
cd ..
cd redis02
./redis-server redis.conf
cd ..
cd redis03
./redis-server redis.conf
cd ..
cd redis04
./redis-server redis.conf
cd ..
cd redis05
./redis-server redis.conf
cd ..
cd redis06
./redis-server redis.conf
cd ..
修个批处理命令权限
从redis原来的包中赋值src下的redis-trib.rb到redis-cluster/文件夹下。
redis-5.0以上不再使用ruby语言了,因此需要复制redis-cli到redis-cluster文件夹下。
5.0以上的需要安装c语言库。gcc
可以通过ll *.rb查找该文件
这是一个ruby脚本语言。
需要安装ruby运行的库和环境。
yum install ruby
yum install rubygems
安装ruby运行的库
搭建集群(我的是5.0的用的是redis-cli)
./redis-cli --cluster create 192.168.25.128:7001 192.168.25.128:7002 192.168.25.128:7003 192.168.25.128:7004 192.168.25.128:7005 192.168.25.128:7006 --cluster-replicas 1
./redis-trib.rb create --replicas 1 192.168.25.153:7001 192.168.25.153:7002 192.168.25.153:7003 192.168.25.153:7004 192.168.25.153:7005 192.168.25.153:7006
@Test
public void testJedis() {
//创建一个连接jedis对象参数;host,port
Jedis jedis=new Jedis("192.168.25.128",6379);
//直接使用jedis操作redis.所以jedis的命令都对应一个方法
jedis.set("test123","my first jedis test");
String string =jedis.get("test123");
System.out.println(string);
//关闭连接
jedis.close();
}
@Test
public void testJedisPool() {
//创建一个连接池对象两个参数host,port
JedisPool jedisPool=new JedisPool("192.168.25.128",6379);
//从连接池获取一个连接,就是jedis对象
Jedis jedis =jedisPool.getResource();
//使用jedis操作redis
String string=jedis.get("test123");
System.out.println(string);
//关闭连接,每次使用完毕后关闭连接
jedis.close();
//关闭连接池
jedisPool.close();
}
@Test
public void testJedisCluster() throws Exception{
//创建一个jedisCluster对象,有一个参数nodes是一个set类型,set中包含若干个
// HostPort对象
Set<HostAndPort> nodes=new HashSet<>();
nodes.add(new HostAndPort("192.168.25.128", 7001));
nodes.add(new HostAndPort("192.168.25.128", 7002));
nodes.add(new HostAndPort("192.168.25.128", 7003));
nodes.add(new HostAndPort("192.168.25.128", 7004));
nodes.add(new HostAndPort("192.168.25.128", 7005));
nodes.add(new HostAndPort("192.168.25.128", 7006));
JedisCluster jedisCluster=new JedisCluster(nodes);
//直接使用JedisCluster对象操作redis
jedisCluster.set("test","123");
String string = jedisCluster.get("test");
System.out.println(string);
//关闭JedisCluster对象
jedisCluster.close();
}
<bean id="jedisClientPool" class="cn.e3mall.common.jedis.JedisClientPool">
<property name="jedisPool" ref="jedisPool">property>
bean>
<bean id="jedisPool" class="redis.clients.jedis.JedisPool">
<constructor-arg name="host" value="192.168.25.128">constructor-arg>
<constructor-arg name="port" value="6379">constructor-arg>
bean>
<bean id="jedisClientCluster" class="cn.e3mall.common.jedis.JedisClientCluster">
<property name="jedisCluster" ref="jedisCluster"/>
bean>
<bean id="jedisCluster" class="redis.clients.jedis.JedisCluster">
<constructor-arg name="nodes">
<set>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="192.168.25.128">constructor-arg>
<constructor-arg name="port" value="7001">constructor-arg>
bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="192.168.25.128">constructor-arg>
<constructor-arg name="port" value="7002">constructor-arg>
bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="192.168.25.128">constructor-arg>
<constructor-arg name="port" value="7003">constructor-arg>
bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="192.168.25.128">constructor-arg>
<constructor-arg name="port" value="7004">constructor-arg>
bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="192.168.25.128">constructor-arg>
<constructor-arg name="port" value="7005">constructor-arg>
bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="192.168.25.128">constructor-arg>
<constructor-arg name="port" value="7006">constructor-arg>
bean>
set>
constructor-arg>
bean>
@Value("${CONTENT_LIST}")
private String CONTENT_LIST;
//把结果添加到缓存
try {
jedisClient.hset(CONTENT_LIST, cid + "", JsonUtils.objectToJson(list));
} catch (Exception e) {
e.printStackTrace();
}
//查询缓存
try {
//如果缓存中有直接响应结果
String json = jedisClient.hget(CONTENT_LIST, cid + "");
if (StringUtils.isNotBlank(json)) {
List<TbContent> list = JsonUtils.jsonToList(json, TbContent.class);
return list;
}
} catch (Exception e) {
e.printStackTrace();
}
//缓存同步,删除对应的数据,千万不要都删除。否则加载缓存要耗费很多精力。
jedisClient.hdel(CONTENT_LIST,content.getCategoryId().toString());