Redis集群的分类:
1.主从架构(主服务器负责写,从服务器负责读)。
2.哨兵架构(哨兵服务器负责监控主服务器的状态,主服务器如果宕机,将从服务器提升为主)。
3.集群架构(并发能力,可用性高于哨兵架构),
一个redis集群包含16384个插槽(hash slot),数据库中的每个键都属于这16384个插槽的其中一个。
集群使用公式:将数据的key进行hash运算,获得保存数据的位置,该位置可能是集群中任意一台服务器。
搭建Redis伪集群的步骤
真正的集群:每个Redis安装到不同服务器上。
伪集群:在一台机器上安装多个Redis实例。
至少需要多少服务器:
master的选举需要半数以上服务器投票支持,最少需要三台服务器,每台服务器需要有一个备份,最少需要六台服务器。
1)新建redis-cluster目录,新建redis01~redis06六个子目录 cd /usr/local mkdir redis-cluster cd redis-cluster mkdir redis01 .... 2)复制redis/src和redis.conf到redis01~redis06目录中 cd redis cp -r src/* /usr/local/redis-cluster/redis01 cp reids.conf /usr/local/redis-cluster/redis01 .... 3)修改redis.conf daemonize yes cluster-enabled yes port 7001~~~~7006 4)在redis-cluster中创建启动脚本vi start.sh 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 .. 5)启动redis实例 chmod +x start.sh ./start.sh 6)创建集群 /usr/local/redis/src/redis-cli --cluster create 192.168.52.3:7001 192.168.52.3:7002 192.168.52.3:7003 192.168.52.3:7004 192.168.52.3:7005 192.168.52.3:7006 --cluster-replicas 1 7)访问集群 /usr/local/redis/src/redis-cli -h 192.168.223.223 -c -p 7001
布隆过滤器(Bloom Filter)是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都比一般的算法要好的多,缺点是有一定的误识别率和删除困难。
特点:判断存在的数据不一定存在,判断不存在的数据一定不存在。
Redis本身就支持布隆过滤器的实现
Redission工具库,提供了基于Redis实现分布式工具,如:分布式锁、布隆过滤器、分布式原子类等。
添加依赖:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <!-- https://mvnrepository.com/artifact/org.redisson/redisson-spring-boot-starter --> <dependency> <groupId>org.redisson</groupId> <artifactId>redisson-spring-boot-starter</artifactId> <version>3.17.0</version> </dependency>
配置类
@Configuration public class RedissonConfig { @Bean public RedissonClient redissonClient(){ Config config = new Config(); config.setTransportMode(TransportMode.NIO); SingleServerConfig singleServerConfig = config.useSingleServer(); //可以用"rediss://"来启用SSL连接 singleServerConfig.setAddress("redis://127.0.0.1:6379"); // singleServerConfig.setPassword("123456"); RedissonClient redisson = Redisson.create(config); return redisson; } }
测试类
@SpringBootTest class RedisdemoApplicationTests { @Autowired private RedissonClient client; @Test void contextLoads() { //创建布隆过滤器 RBloomFilter<String> bloom = client.getBloomFilter("bloom-filter"); //初始化,参数1 序列长度 识别误差率 bloom.tryInit(10000000L,0.03); //添加数据到过滤器 bloom.add("hello"); bloom.add("world"); bloom.add("app"); //判断过滤器中是否存在该值 System.out.println(bloom.contains("hello")); System.out.println(bloom.contains("world")); System.out.println(bloom.contains("java")); } }
热门文章
- 12月3日 - 最高速度18.1M/S,2024年Surfboard每天更新免费节点订阅链接,干净IP机场推荐
- 11月20日 - 最高速度21.1M/S,2024年Surfboard每天更新免费节点订阅链接,干净IP机场推荐
- 11月18日 - 最高速度18.6M/S,2024年Surfboard每天更新免费节点订阅链接,干净IP机场推荐
- 猪疫苗时间 猪疫苗时间表
- 宠物领养市场经济可行性分析 宠物领养市场经济可行性分析报告
- 12月7日 - 最高速度22.9M/S,2024年Surfboard每天更新免费节点订阅链接,干净IP机场推荐
- 芭比堂爱心连锁宠物医院(芭比堂宠物医院百度百科)
- 12月17日 - 最高速度21.4M/S,2024年Surfboard每天更新免费节点订阅链接,干净IP机场推荐
- 动物疫苗是处方药吗知乎(动物疫苗属于疫苗吗)
- 11月11日 - 最高速度19M/S,2024年Surfboard每天更新免费节点订阅链接,干净IP机场推荐