首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【redis启动与数据过期】

【redis启动与数据过期】

作者头像
用户1750537
发布2025-08-29 14:18:50
发布2025-08-29 14:18:50
8700
代码可运行
举报
运行总次数:0
代码可运行
在这里插入图片描述
在这里插入图片描述

欢迎关注微信公众号:数据科学与艺术 作者WX:superhe199

使用以下命令来查看Redis服务器的启动状态:

代码语言:javascript
代码运行次数:0
运行
复制
sudo service redis status

这条命令会显示Redis服务器的运行状态,如果Redis正在运行,将会显示“running”,如果Redis没有运行,将会显示“not running”。

Redis设置缓存失效的命令是"EXPIRE"

。该命令可以用于设置一个键的过期时间,当时间到期后,键会被自动删除。命令的语法为:

代码语言:javascript
代码运行次数:0
运行
复制
EXPIRE key seconds

其中,key为要设置过期时间的键名,seconds为过期时间,单位为秒。例如,以下命令将名为"mykey"的键设置为30秒后过期:

代码语言:javascript
代码运行次数:0
运行
复制
EXPIRE mykey 30

还可以使用"SETEX"命令来设置键的同时设置过期时间。命令的语法为:

代码语言:javascript
代码运行次数:0
运行
复制
SETEX key seconds value

其中,key为键名,seconds为过期时间,value为键的值。例如,以下命令将名为"mykey"的键设置为30秒后过期,并将其值设置为"value":

代码语言:javascript
代码运行次数:0
运行
复制
SETEX mykey 30 value

当键被设置了过期时间后,如果再对该键进行读写操作,过期时间会被重新计算。如果不想重新计算过期时间,可以使用"PEXPIRE"和"PSETEX"命令,它们与"EXPIRE"和"SETEX"的用法相同,只是过期时间的单位为毫秒。

案例分享

使用java.util.Calendar类来获取当前时间,并计算距离本周结束还有多久的毫秒数。然后,使用RedisTemplate来设置缓存的过期时间为获取到的毫秒数。

以下是示例代码:

代码语言:javascript
代码运行次数:0
运行
复制
import org.springframework.data.redis.core.HashOperations;
import org.springframework.data.redis.core.RedisTemplate;

import java.util.Calendar;
import java.util.Date;
import java.util.concurrent.TimeUnit;

public class RedisCacheExample {

    private RedisTemplate<String, Object> redisTemplate;

    public RedisCacheExample(RedisTemplate<String, Object> redisTemplate) {
        this.redisTemplate = redisTemplate;
    }

    public void setHashData() {
        // 假设存在一个名为userCount的Hash,在其中统计了上周的用户数和本周的用户数
        String hashKey = "userCount";
        String lastWeekUserCountKey = "lastWeekUserCount";
        String currentWeekUserCountKey = "currentWeekUserCount";

        // 假设当前时间为2021-08-25
        Calendar calendar = Calendar.getInstance();
        calendar.set(Calendar.YEAR, 2021);
        calendar.set(Calendar.MONTH, Calendar.AUGUST);
        calendar.set(Calendar.DAY_OF_MONTH, 25);
        Date currentTime = calendar.getTime();

        // 获取当前时间到本周结束还有多久的毫秒数
        calendar.set(Calendar.DAY_OF_WEEK, calendar.getActualMaximum(Calendar.DAY_OF_WEEK));
        calendar.set(Calendar.HOUR_OF_DAY, 23);
        calendar.set(Calendar.MINUTE, 59);
        calendar.set(Calendar.SECOND, 59);
        calendar.set(Calendar.MILLISECOND, 999);
        long millisecondsToExpire = calendar.getTime().getTime() - currentTime.getTime();

        // 设置缓存的过期时间为本周结束时间
        HashOperations<String, String, Long> hashOperations = redisTemplate.opsForHash();
        hashOperations.getOperations().expire(hashKey, millisecondsToExpire, TimeUnit.MILLISECONDS);
        hashOperations.getOperations().expire(lastWeekUserCountKey, millisecondsToExpire, TimeUnit.MILLISECONDS);
        hashOperations.getOperations().expire(currentWeekUserCountKey, millisecondsToExpire, TimeUnit.MILLISECONDS);

        // ...
        // 其他操作
    }
}

在上述示例代码中,我们假设存在一个名为userCount的Hash,在其中统计了上周的用户数和本周的用户数。我们首先使用Calendar类将当前时间设置为2021-08-25(星期三),然后计算了当前时间到本周结束还有多久的毫秒数。最后,我们使用RedisTemplateexpire方法设置了缓存的过期时间为本周结束时间。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-08-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 使用以下命令来查看Redis服务器的启动状态:
  • Redis设置缓存失效的命令是"EXPIRE"
  • 案例分享
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档