序言
上篇写了redis详细的安装步骤,这篇就继续实现redis的分片技术,实现的前提条件是必须确保redis已经安装成功,如果不知道怎么安装请翻去我写的上篇根据步骤一步步来就可以了,此次分片是基于linu环境实现。
1.1:Redis内存如何扩容
一般redis内存大小设定时一般为512M-1024M,如果用户小缓存的数据有3G?则可以通过redis分片技术实现内存扩容。
1.2:Redis分片搭建步骤
1.进入redis安装目录下命令创建shards目录
2.执行下面命令把redis.conf文件拷贝到shards目录下
cp redis.conf shards/redis-6379.conf
2.1:cd进入shards目录执行分别执行下面命令
cp redis-6379.conf redis-6380.conf
cp redis-6379.conf redis-6381.conf
最后效果如下:
3.修改端口号
3.1:分别修改6380/6381配置文件的端口号
4.启动三台rendis
ps -ef |grep redis 查看
4.1:进入指定端口的客户端
redis-cli -p 6379
redis-cli -p 6380
redis-cli -p 6381
Redis分片API测试
public class RedisShards {
public static void main(String[] args) {
// rendis分片技术
List<JedisShardInfo> shards = new ArrayList<>();
shards.add(new JedisShardInfo("192.168.197.132",6379));
shards.add(new JedisShardInfo("192.168.197.132",6380));
shards.add(new JedisShardInfo("192.168.197.132",6381));
ShardedJedis shardedJedis = new ShardedJedis(shards);
shardedJedis.set("shards", "redis分片技术");
System.out.println(shardedJedis.get("shards"));
}
}
测试结果
可以查看到结果是存入到6381端口库里了
Redis分片连接池测试
public class RedisShardsDemo {
public static void main(String[] args) {
//定义链接池
JedisPoolConfig poolConfig = new JedisPoolConfig();
poolConfig.setMaxTotal(1000);
poolConfig.setMaxIdle(50);//最大连接空闲数量
poolConfig.setMinIdle(10);//最小空闲连接数量
//定义多个redis
List<JedisShardInfo> shardsInfo = new ArrayList<>();
shardsInfo.add(new JedisShardInfo("192.168.197.132",6379));
shardsInfo.add(new JedisShardInfo("192.168.197.132",6380));
shardsInfo.add(new JedisShardInfo("192.168.197.132",6381));
ShardedJedisPool pool = new ShardedJedisPool(poolConfig,shardsInfo);
ShardedJedis shardsJedis = pool.getResource();
shardsJedis.set("sharde", "redis shards");
System.out.println("rendis连接池分片技术:"+shardsJedis.get("sharde"));
pool.returnResource(shardsJedis);
}
}
测试结果
结果存入到6379端口库里