Redis5中BloomFilter和Redisson 安装及使用
安装及使用布隆过滤器
- Centos7 上 Redis 5.x 安装及使用布隆过滤器(BloomFilter )
1. 进入redis安装目录: cd /usr/local/redis-5.0.8
2. 下载插件: git clone https://github.com/RedisBloom/RedisBloom.git
# https://github.com/RedisBloom/RedisBloom
3. 进入插件目录: cd redisbloom/ (重命名之前为RedisBloom)
4. 执行: make
5. 修改 redis.conf,增加配置: loadmodule /usr/local/redis-5.0.8/redisbloom/redisbloom.so
6. 启动redis: src/redis-server ./redis.conf
7. 连接客户端: src/redis-cli -p 6379
8. 测试,先后执行: bf.add users francis bf.exists users francis
9. 更多内容可参考: https://oss.redislabs.com/redisbloom/
-
Java 操作结合Redisson操作布隆过滤器
<dependency> <groupId>org.redisson</groupId> <artifactId>redisson-spring-boot-starter</artifactId> <version>3.12.1</version> </dependency>
RBloomFilter<String> bloomFilter = redisson.getBloomFilter("phoneList"); //初始化布隆过滤器:预计元素为100000000L,误差率为3%(默认为3%,设置越小占用内存越大) bloomFilter.tryInit(100000000L,0.03); //将号码10086插入到布隆过滤器中 bloomFilter.add("10086"); //判断下面号码是否在布隆过滤器中 System.out.println(bloomFilter.contains("123456"));//false System.out.println(bloomFilter.contains("10086"));//true
springboot配置redisson
1.sentinel高可用下配置
@Configuration
public class RedissonConfig {
@Value("${spring.redis.sentinel.master}")
private String master;
@Value("${spring.redis.sentinel.nodes}")
private String cluster;
@Value("${spring.redis.password}")
private String password;
@Value("${spring.redis.timeout}")
private Integer timeout;
//添加redisson的bean
@Bean
public Redisson redisson() {
String[] nodes = cluster.split(",");
List<String> clusterNodes = new ArrayList<>();
for (int i = 0; i < nodes.length; i++) {
clusterNodes.add("redis://" + nodes[i]);
}
Config config = new Config();
SentinelServersConfig serverConfig = config.useSentinelServers()
.addSentinelAddress(clusterNodes.toArray(new String[0]))
.setMasterName(master)
.setReadMode(ReadMode.SLAVE)
.setTimeout(timeout);
//设置密码
if (StringUtils.isNotBlank(password)) {
serverConfig.setPassword(password);
}
return (Redisson) Redisson.create(config);
}
yml
redis:
sentinel:
master: 'mymaster'
nodes: '10.129.36.24:26379,10.129.36.25:26379,10.129.36.26:26379'
lettuce:
pool:
###最大连接数
max-active: 8
#最大和最小空闲连接
max-idle: 4
min-idle: 0
#连接的最大等待阻塞的时间
max-wait: 1
#关闭时的超时时间
time-between-eviction-runs: 4000
database: 0
password: 'K(878ihdkjfiiijfieiyyiyi1'
timeout: 10000