关于redis.Hash如何设置过期时间,时间不过期

关于redis.opsForHash结构时间不过期,如何设置过期时间
首先看opsForHash中的put方法
Redis.opsForHash.put(key,hashkey,value);
我们平时设置过期时间用的expire方法设置的是hashkey的过期时间,为什么要用redis,因为数据读取快,试想一下如果就只是单纯的几百条数据,几条查询的话就不会用到redis了,要做大数量的数据存储读取,每操作一条hashkey就会刷新key的过期时间,所以key相当于不会过期。
下面来说下我是怎么解决的
补充:hash不可以设置hashkey的过期时间,会被覆盖,装redis的时候使用key value ,value是map(key,map)格式即可。
Redis.opsForValue.set方法就可以完美替代opsForHash.put了。过期时间设置opsForHash.set(key,value,时间,TimeUnit.SECONDS)就可以了,取的方法跟不变
废话不多说上代码看效果:
public void test(String str) {
String key = “Redis16_test”;
String hashkey = “” + str;
Map<String,String> map = new HashMap<String,String>();
map.put(“nihao”, “nihao”);
map.put(“wohao”, “wohao”);
map.put(“dajiahao”, “dajiahao”);
map.put(“caishi”, “caishi”);
map.put(“zhengdehao”, “zhengdehao”);
map.put(“formwozuiyangqi”, “formwozuiyangqi”);
System.out.println(map);
redis16.opsForHash().put(key, hashkey, map);
redis16.expire(key, 100000, TimeUnit.SECONDS);
}
public void testNew(String str) {
String key = “Redis16_test”;
Map<String,String> map = new HashMap<String,String>();
map.put(“nihao”, “nihao”);
map.put(“wohao”, “wohao”);
map.put(“dajiahao”, “dajiahao”);
map.put(“caishi”, “caishi”);
map.put(“zhengdehao”, “zhengdehao”);
map.put(“formwozuiyangqi”, “formwozuiyangqi”);
redis16.opsForValue().set(key, map.toString());
redis16.opsForValue().set(key,map.toString(),10l,TimeUnit.SECONDS);
}
public static void main(String[] args) {
Test test = new Test();
test.test(“wozuiyangqi”);
test.testNew(“wozuiyangqi”);
}
运行结果相同

评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值