redis永不过期,保留最新5条数据,StringUtils.join()等总结
redis使用问题
-
如果redis没有设置expire,他是否默认永不过期?【原文】
redis最大内存不足"时,数据清除策略,默认为"volatile-lru"。
因此 如果没有设置有效期,即使内存用完,redis 自动回收机制也是看设置了有效期的,不会动没有设定有效期的,如果清理后内存还是满的,就不再接受写操作。
对没设置expire的数据,产生影响的是allkeys-lru机制,allkeys-random机制。 redis没设置expire的数据是否会删除,是由你自己选择的删除机制决定的。 -
查看key的过期时间
ttl key
当 key 不存在时,返回 -2 。
当 key 存在但没有设置剩余生存时间时,返回 -1 。
否则,以秒为单位,返回 key 的剩余生存时间,即一个整数。 -
保留最新5条数据
// 向List头部追加记录
jedisCluster.lpush(CommonConstant.TTT + "" + ID, msg);
// 仅保留指定区间内的记录数,删除区间外的记录。下标从 0 开始,即 end 需要最大值 -1
jedisCluster.ltrim(CommonConstant.TTT + "" + ID, 0, 4); -
redis连接 使用密码
redis-cli -h xxx -p 6379 -a xxx -
redis list 清空记录小技巧
redis中的list操作命令中删除指定key中的所有记录命令:
ltrim key 1 0
即 ltrim key start end 中的start要比end大即可,数值且都为正数。 -
Redis报错:WRONGTYPE Operation against a key holding the wrong kind of value 解决处理
jedis方法与redis服务器中存储数据的类型存在冲突
可以用 type key 查看数据类型
json转化为字符串 引号 出现反斜杠【参考】
StringEscapeUtils.unescapeJava(str)
或者
StringEscapeUtils.unescapeJava(str)
两者是等价的。
@PostConstruct注解
Spring框架中使用到@PostConstruct注解 该注解的方法在整个Bean初始化中的执行顺序:
Constructor(构造方法) -> @Autowired(依赖注入) -> @PostConstruct(注释的方法)
[Java基础]StringUtils.join()方法与String.join()方法的使用【原文】
-
StringUtils.join()方法:
需要引入 common-lang3.jar包
此方法需传入2个参数,第一个参数是传入一个任意类型数组或集合,第二个参数是拼接符。数组和集合支持类型较多 -
String.join()方法:
String.join()是JDK8新增方法(无需引包)
发现参数为2个,第一个参数为拼接符号,第二个参数为数组和集合
这里和StringUtils.join()有区别,参数顺序不一样,另外,StringUtils.join()可以传入Integer或者其他类型的集合或数组,而String.join()尽可以传入实现charSequence接口类型的集合或数组。
如果是字符串类型的集合或数组推荐使用String.join()。
switch case 逻辑或的写法
switch (env) {
case "fat":
case "dev":
return "666";
case "uat":
return "777";
default:
return "";
}