概述
spring boot redis 集群节点配置:
yml文件配置 redis:
cluster:
nodes:
- Ip:端口1,Ip:端口2,Ip:端口3,Ip:端口4,Ip:端口5
# Redis服务器连接密码(默认为空)
password:
# Redis数据库索引(默认为0)
database: 0
# 连接超时时间,2.0 中该参数的类型为Duration,这里在配置的时候需要指明单位
timeout: 10s
# 连接池配置,2.0中直接使用jedis或者lettuce配置连接池
jedis:
pool:
# 连接池最大连接数(使用负值表示没有限制)
max-active: -1
# 连接池中的最大空闲连接
max-idle: 50
# 连接池中的最小空闲连接
min-idle: 0
# 连接池最大阻塞等待时间(使用负值表示没有限制)
max-wait: 1ms
/**
* 自增序列号
* @param key 前缀
* @param numLength 要生成多少位的数字
* @return
*/
public synchronized String seqGenerator(String key, int numLength) {
String upperCode = "";
Long size = redisTemplate.opsForList().size(key);//查找以prefix作为key值的数据长度
if (size > 0) {//有数据
List<Object> leve = redisTemplate.opsForList().range(key, 0, -1);//获取该key下面的所有值 (-1所有值;1下一个值)
upperCode = leve.get(leve.size() - 1).toString();//返回最后一个值
}
String returnCode = "";
int Suffix;//后缀数字
if (!StringUtil.isEmpty(upperCode)) {//有数据
String sequence = upperCode.substring(key.length());//截取前缀开始的后面数字
Suffix = Integer.parseInt(sequence);
Suffix++;//最后的序号加一
} else {//没有数据
Suffix = 1;
}
returnCode = String.format("%0" + numLength + "d", Suffix);//后缀不够numLength长,前面补充0
redisTemplate.opsForList().rightPush(key, returnCode);//存入Redis
return returnCode;
}
/**
* 自增序列号
* @param key 前缀
* @param numLength 要生成多少位的数字
* @return
*/
public synchronized static String seqGeneratorByRedisAtomicLong(String key, int numLength) {
String upperCode = "";
RedisAtomicLong counter = new RedisAtomicLong(key, redisTemplate.getConnectionFactory());
long result = counter.incrementAndGet();
upperCode = String.format("%0" + numLength + "d", result);//后缀不够numLength长,前面补充0
return upperCode;
}
最后
以上就是虚心书本为你收集整理的redis 生成序列号方法的全部内容,希望文章能够帮你解决redis 生成序列号方法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复