redis永不过期,保留最新5条数据,StringUtils.join()等总结

redis使用问题

  1. 如果redis没有设置expire,他是否默认永不过期?【原文
    redis最大内存不足"时,数据清除策略,默认为"volatile-lru"。
    因此 如果没有设置有效期,即使内存用完,redis 自动回收机制也是看设置了有效期的,不会动没有设定有效期的,如果清理后内存还是满的,就不再接受写操作。
    对没设置expire的数据,产生影响的是allkeys-lru机制,allkeys-random机制。 redis没设置expire的数据是否会删除,是由你自己选择的删除机制决定的。

  2. 查看key的过期时间
    ttl key
    当 key 不存在时,返回 -2 。
    当 key 存在但没有设置剩余生存时间时,返回 -1 。
    否则,以秒为单位,返回 key 的剩余生存时间,即一个整数。

  3. 保留最新5条数据
    // 向List头部追加记录
    jedisCluster.lpush(CommonConstant.TTT + "" + ID, msg);
    // 仅保留指定区间内的记录数,删除区间外的记录。下标从 0 开始,即 end 需要最大值 -1
    jedisCluster.ltrim(CommonConstant.TTT + "
    " + ID, 0, 4);

  4. redis连接 使用密码
    redis-cli -h xxx -p 6379 -a xxx

  5. redis list 清空记录小技巧
    redis中的list操作命令中删除指定key中的所有记录命令:
    ltrim key 1 0
    即 ltrim key start end 中的start要比end大即可,数值且都为正数。

  6. 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()方法的使用【原文

  1. StringUtils.join()方法:
    需要引入 common-lang3.jar包
    此方法需传入2个参数,第一个参数是传入一个任意类型数组或集合,第二个参数是拼接符。数组和集合支持类型较多

  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 "";
}

posted @ 2020-08-14 18:15  CalronLoveRonnie  阅读(1672)  评论(0编辑  收藏  举报
AmazingCounters.com