linux环境下的redis分片搭建

上接上一篇文章:Linux环境下redis的安装

1. 分片的目的

redis是将数据存储在内存中的,但是为了增加存储容量,一味的加大内存并不是一种好的解决方案,而分片则可以将数据存储在不同的redis服务器上,不仅实现了内存扩容,还降低了单台redis的压力。

2. 分片的实现

2.1 准备分片文件夹(因为是在虚拟机上部署,为了方便管理部署在了一个文件夹下,可以根据实际情况部署在不同的服务器)

mkdir shards
cp redis.conf shards/

复制配置文件到分片文件夹
在这里插入图片描述

2.2 修改配置文件

2.2.1 文件改名及复制

先将复制的文件改名为6379.conf
在这里插入图片描述
再复制多份配置文件
在这里插入图片描述

2.2.2 修改端口号及RDB模式名称

修改6379.conf
在这里插入图片描述

在这里插入图片描述
后面两个文件修改成对应的端口和名字

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

2.2.3 准备启动脚本
vim start.sh

在文件中写入启动脚本

#!/bin/sh
redis-server 6379.conf &
redis-server 6380.conf &
redis-server 6381.conf &
2.2.4 启动redis
sh start.sh

在这里插入图片描述

2.2.5 检查是否启动成功

在这里插入图片描述

2.2.6 分片的测试

测试jar包

	<!--spring整合redis -->
	<dependency>
		<groupId>redis.clients</groupId>
		<artifactId>jedis</artifactId>
	</dependency>
	<dependency>
		<groupId>org.springframework.data</groupId>
		<artifactId>spring-data-redis</artifactId>
	</dependency>
/* redis分片测试 */
	@Test
	public void redisShards() {
		List<JedisShardInfo> list = new ArrayList<>();
		list.add(new JedisShardInfo("192.168.126.129", 6379));
		list.add(new JedisShardInfo("192.168.126.129", 6380));
		list.add(new JedisShardInfo("192.168.126.129", 6381));
		ShardedJedis shardedJedis = new ShardedJedis(list);
		shardedJedis.set("aa", "aa");
		shardedJedis.set("a1", "a1");
		shardedJedis.set("a2", "a2");
		shardedJedis.set("a3", "a3");
		shardedJedis.set("a4", "a4");
	}

测试结果
6379 端口数据
在这里插入图片描述
6380 端口数据
在这里插入图片描述
6381 端口数据

在这里插入图片描述
至此已实现redis的分片操作

3.分片的实现原理

一致性哈希算法
在这里插入图片描述
摘自百度百科

4. 分片存在的问题

当一台redis出现宕机,数据就可能会丢失,不能实现高可用

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值