import java.util.Timer;
import java.util.TimerTask;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.Transaction;
public class Simple7 {
static int EXPIRED_SENCONDS = 60; //60秒过期,使用线程清除过期的数据
public static void main(String[] args) {
isServerRunning();
Jedis client = getConnection();
client.set("user:zhangsan", "1"); //user表
client.hset("time:user", "user:zhangsan", expiredDate()); // time表-记录键的过期时间
//周期性的删除过期数据(user表)
Timer timer = new Timer();
long delay = 1000;
long period = 30 * 1000;
TimerTask task = new ClearExpiredKeys(client);
timer.schedule(task, delay, period);
}
//redis事务
private static void transaction(Jedis client){
Transaction tr = client.multi();
tr.hset("user:www", "query", "1");
tr.exec();
}
//ping
private static void isServerRunning(){
String host = "127.0.0.1";
Jedis jedis = new Jedis(host, 6379);
System.out.println("Connection to server sucessfully");
System.out.println("Server is running: "+jedis.ping());
}
static Jedis getConnection(){
String host = "127.0.0.1";
Jedis client = new Jedis(host, 6379);
return client;
}
static String expiredDate(){
Date d = new Date();
d.setSeconds(d.getSeconds() + EXPIRED_SENCONDS);
SimpleDateFormat f = new SimpleDateFormat("HHmmss");
return f.format(d);
}
}
class ClearExpiredKeys extends TimerTask{
private Jedis client;
public ClearExpiredKeys(Jedis client){
this.client = client;
}
@Override
public void run() {
Set<String> fields = client.hkeys("time:user");
Iterator<String> it = fields.iterator();
String field = null;
String expiredDate = null;
Date now = new Date();
SimpleDateFormat f = new SimpleDateFormat("HHmmss");
int inow = new Integer(f.format(now));
while(it.hasNext()){
field = it.next();
expiredDate = client.hget("time:user", field);
if(new Integer(expiredDate) < inow){
//client.del("user:zhangsan");
client.del(field);
client.hdel("time:user", field);
System.out.println("-- 删除键 " + field);
}
}
//client.close();
}
}
相关推荐
### MyBatis与Redis缓存配置详解 #### 一、MyBatis缓存机制概述 在MyBatis中,缓存是一项重要的性能优化措施。它能够显著减少数据库的访问次数,提高应用程序的响应速度。MyBatis提供了两种级别的缓存支持:一级...
通过使用像Redis Desktop Manager这样的工具,开发者和运维人员能够更加高效地管理和维护Redis缓存,提高工作效率,同时确保数据的安全和一致性。无论你是初学者还是经验丰富的开发者,这样的工具都将极大地提升你的...
1. **Redis缓存的优势** - 高性能:Redis是基于内存的数据结构存储系统,读写速度非常快。 - 支持多种数据结构:如字符串、哈希、列表、集合、有序集合等。 - 支持持久化:通过RDB或AOF方式保存数据到磁盘,防止...
Spring Cache手动清理Redis缓存 Spring Cache是Spring框架中的一种缓存机制,它可以将缓存数据存储在Redis中。...使用Spring Cache手动清理Redis缓存可以帮助我们更好地管理缓存数据,释放内存空间和更新缓存数据。
连接redis服务器,管理缓存数据,新增、修改、删除、刷新
在这个"springboot-redis缓存+分布锁"的项目中,我们将探讨如何在SpringBoot应用中集成Redis来实现缓存管理和分布式锁。 1. **Redis缓存** Redis作为一个键值对数据库,因其高效读写性能和丰富的数据结构(如字符...
linux系统下,模糊匹配,可批量删除redis的key,修改ip即可使用。试用场景:redis内存爆满、redis不能定时清理数据等。
本文将深入探讨如何使用SpringMVC结合Redis实现数据缓存,以及Spring是如何通过注解来简化缓存管理的。 首先,Redis是一个开源的、基于内存的数据存储系统,常用于做高速缓存,它支持多种数据结构如字符串、哈希、...
根据提供的文件信息,本文将详细解释与“清空Redis缓存”相关的知识点,包括如何访问Redis、登录Redis、查看及管理Redis中的键值对等操作。 ### 一、Redis简介 Redis(Remote Dictionary Server)是一种开源的键值...
6. Redis缓存配置:在`@Configuration`类中配置RedisTemplate和StringRedisTemplate,用于操作Redis。 7. 使用缓存:在需要缓存的方法上使用`@Cacheable`注解,指定缓存的key和value生成策略。 8. 清除缓存:使用`@...
本文将详细介绍两种在Windows上清理Redis缓存的方法,并探讨Redis缓存可能出现的问题——缓存穿透、缓存击穿和缓存雪崩。 首先,了解Redis缓存的清理方法: 1. 使用Redis命令行工具: Redis提供了命令行客户端`...
SSM整合Redis缓存Demo是基于Spring、SpringMVC和MyBatis的高效开发框架,进一步结合了Redis作为缓存技术的示例项目。这个Demo适用于开发者在MyEclipse或Eclipse环境中导入并配置数据库,只要本地已安装Redis服务器,...
3. 使用缓存失效机制,定期清理过期或无效的缓存数据,避免缓存穿透。 二、缓存击穿 缓存击穿是指在高并发的情况下,缓存中的某个热点数据失效或过期,导致大量请求直达数据库,导致数据库压力增大,甚至宕机。...
"springMybatis+redis三级缓存框架"是一个高效且灵活的解决方案,它将MyBatis的二级缓存与Redis相结合,形成一个三级缓存体系,以优化数据读取速度并减轻数据库压力。 首先,MyBatis作为一款轻量级的持久层框架,其...
此外,Redis还支持过期策略,可以通过设置键的生存时间(TTL,Time to Live)来自动清理不再需要的数据。 Redis还具备丰富的特性,如发布/订阅(Pub/Sub)模式,支持消息队列,实现进程间通信;主从复制,用于构建...
4. **代码中使用缓存**: 在业务代码中,我们可以使用Spring的`@Cacheable`、`@CacheEvict`和`@CachePut`注解来声明方法的返回结果应被缓存,清除特定缓存项,或者在更新数据后更新缓存。 5. **监控与维护**: 最后,...
Spring集成Redis缓存能有效提升应用性能,减少数据库压力。通过合理配置和使用,可以在保证数据一致性的前提下,为用户提供快速响应。理解并掌握Spring Cache和Redis的集成,是优化Java Web应用的关键技能。
在Java开发中,Redis缓存技术是提升Web应用程序性能的关键工具。本教程将引导你入门Redis缓存技术,帮助你理解如何在Java环境中集成和使用Redis。 首先,让我们了解一下Redis的基本概念。Redis支持多种数据结构,如...
为了最大化Redis缓存的效果,需要定期清理过期数据,避免内存占用过多。同时,合理设置Redis的过期时间、最大内存限制和数据持久化策略,以保持系统的稳定性和数据安全性。监控Redis的性能指标,如内存使用、命令...
1. **缓存**:由于Redis的高性能,常被用于网站的session存储、页面静态化数据的缓存,以及数据库查询结果的缓存,以减轻数据库压力。 2. **计数器**:如统计网页访问次数、社交网络的点赞数等。 3. **排行榜**:...