redis demo
方法hset(String key,String field,String value),hmset(String key, Map<String,String> hash),hgetAll()
hash结构(key value)
业务场景:当信物无感时间超过一定时间 就再次出现
实现:
用redis 存储无感信物去exclude:
//1.批量获取用户的无感信物列表:
(判断无感信物有效期是否超过):
Map<String, String> userGiftList = giftCacheFacade.getUser(userId);
(内置方法:Map<String, String> hash = redisClientTemplate.hgetAll(key))
Map<String, String> newUserGiftList = Maps.newHashMap();
//用户的无感信物id列表 List<Integer> excludeGiftIds = Lists.newArrayList();
for (String giftIdStr : userGiftList.keySet()) {
String giftExpireTime = userGiftList.get(giftIdStr);
if (System.currentTimeMillis() < Long.valueOf(giftExpireTime)) {
newUserGiftList.put(giftIdStr, giftExpireTime);
excludeGiftIds.add(Integer.valueOf(giftIdStr));
}
}
//2.更新缓存
newUserGiftList.forEach((k, v) -> giftCacheFacade.setUser(userId, Integer.parseInt(k), Long.parseLong(v)));
(内置方法:redisClientTemplate.hset(userId, giftId + "", expireTime + ""))
redis demo的更多相关文章
- asp.net core上使用Redis demo
整体思路:(1.面向接口编程 2.Redis可视化操作IDE 3.Redis服务) [无私分享:ASP.NET CORE 项目实战(第十一章)]Asp.net Core 缓存 MemoryCache ...
- linux下小试redis demo
先启动 redis-server /etc/redis/redis.conf package com.test; import java.util.ArrayList; import java.ut ...
- python redis demo
上代码,redis-demo #!/usr/bin/env python #_*_ coding:UTF-8 _*_ import redis ####配置参数 host = '192.168.0.1 ...
- springboot( 三)redis demo
redis介绍 Redis是目前业界使用最广泛的内存数据存储.相比memcached,Redis支持更丰富的数据结构,例如hashes, lists, sets等,同时支持数据持久化.除此之外,Red ...
- Spring Data Redis简介以及项目Demo,RedisTemplate和 Serializer详解
一.概念简介: Redis: Redis是一款开源的Key-Value数据库,运行在内存中,由ANSI C编写,详细的信息在Redis官网上面有,因为我自己通过google等各种渠道去学习Redis, ...
- Redis分布式缓存 教程以及DEMO
原文地址:http://blog.csdn.net/qiujialongjjj/article/category/1800171 redis demo源码下载:http://download.csdn ...
- C# Redis Server分布式缓存编程 --网络转载
这篇文章我将介绍如果用最简洁的方式配置Redis Server, 以及如何使用C#和它交互编程 一. 背景介绍 Redis是最快的key-value分布式缓存之一 缺点: 没有本地数据缓冲, 目前还没 ...
- 半小时快速了解redis,基于ubuntu 12.04 + redis 2.8.9
一.什么是redis ? 其官方介绍是: Redis is what is called a key-value store, often referred to as a NoSQL databas ...
- C# Redis Server分布式缓存编程(二)
在Redis编程中, 实体和集合类型则更加有趣和实用 namespace Zeus.Cache.Redis.Demo { public class Person { public int Id { g ...
随机推荐
- Fiddler设置展示接口响应时间
在Tool bar上面找到Rules->CustomRules 在class Handlers{ 里面添加 function BeginRequestTime(oS: Session){ ...
- Excel文件加密后忘记密码破解方法
最好使用VBA 工程密码破解方法 新建一个excel文档,然后打开,同时按Alt和F11,进入VBA界面 点击菜单上的插入,模块 在新的窗口粘贴以下代码: Sub crack() Dim i As L ...
- 前后端分离使用 Token 登录解决方案
前后端分离使用 Token 登录解决方案:https://juejin.im/post/5b7ea1366fb9a01a0b319612
- 常见的3种Class级别的错误
ClassNotFoundException 很明显,这个错误是找不到类异常,即在当前classpath路径下找不到这个类. ClassNotFoundException继承了Exception,是必 ...
- Codefores 507B Amr and Pins
B. Amr and Pins time limit per test 1 second memory limit per test 256 megabytes input standard inpu ...
- java虚拟机规范(se8)——class文件格式(四)
4.7 属性 属性用于class文件格式中的ClassFile,field_info,method_info和Code_attribute结构. 所有的属性都是下面的格式: attribute_inf ...
- java收藏的技术资料链接
TCP三次握手详解: https://blog.csdn.net/baiyan3212/article/details/81302448 ICE通信: https://blog.csdn.net/zh ...
- Springboot2.x整合Redis(一)
备注: springboto整合redis依赖于spring-boot-starter-data-redis这个jar 一,项目环境和依赖 1.POM.xml配置 <parent> < ...
- 箭头函数与普通function的区别
1. 箭头函数没有自己的this,它里面的this是继承所属上下文中的this,而且使用call与apply都无法改变 let obj = { name: 'obj' } function fn1() ...
- JS 富文本编码、解码
第一种 escape()和unescape()方法 escape() 方法能够把 ASCII之外的所有字符转换为 %xx 或 %uxxxx(x表示十六进制的数字)的转义序列.从 \u000 到 \u0 ...