怎么用java缓存技术 redis在redis进行数据库操作

redis在JAVA中使用_百度文库
您的浏览器Javascript被禁用,需开启后体验完整功能,
享专业文档下载特权
&赠共享文档下载特权
&100W篇文档免费专享
&每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
redis在JAVA中使用
&&redis在JAVA中使用
阅读已结束,下载本文需要
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
加入VIP
还剩7页未读,
定制HR最喜欢的简历
你可能喜欢Java开发大型互联网-如何使用Redis数据库之Rdis事务处理Java开发大型互联网-如何使用Redis数据库之Rdis事务处理摆钟观点百家号引言Redis是一个开源的、使用C语言编写的、支持网络交互的、可基于内存也可持久化的Key-Value数据库。Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。学会安装redis从redis.io下载最新版redis-X.Y.Z.tar.gz后解压,然后进入redis-X.Y.Z文件夹后直接make即可,安装非常简单。make成功后会在src文件夹下产生一些二进制可执行文件,包括redis-server、redis-cli等等:$ find . -type f -executable./redis-benchmark //用于进行redis性能测试的工具./redis-check-dump //用于修复出问题的dump.rdb文件./redis-cli //redis的客户端./redis-server //redis的服务端./redis-check-aof //用于修复出问题的AOF文件./redis-sentinel //用于集群管理学会启动redis启动redis非常简单,直接./redis-server就可以启动服务端了,还可以用下面的方法指定要加载的配置文件:./redis-server ../redis.conf默认情况下,redis-server会以非daemon的方式来运行,且默认服务端口为6379。有关作者为什么选择6379作为默认端口,还有一段有趣的典故,英语好的同学可以看看作者这篇博文中的解释。使用redis客户端我们直接看一个例子://这样来启动redis客户端了$ ./redis-cli//用set指令来设置key、value127.0.0.1:6379& set name "roc"OK//来获取name的值127.0.0.1:6379& get name"roc"//通过客户端来关闭redis服务端127.0.0.1:6379& shutdown127.0.0.1:6379&redis的事务处理众所周知,事务是指“一个完整的动作,要么全部执行,要么什么也没有做”。在聊redis事务处理之前,要先和大家介绍四个redis指令,即MULTI、EXEC、DISCARD、WATCH。这四个指令构成了redis事务处理的基础。MULTI用来组装一个事务;EXEC用来执行一个事务;DISCARD用来取消一个事务;WATCH用来监视一些key,一旦这些key在事务执行之前被改变,则取消事务的执行。纸上得来终觉浅,我们来看一个MULTI和EXEC的例子:redis& MULTI //标记事务开始redis& INCR user_id //多条命令按顺序入队QUEUEDredis& INCR user_idredis& PINGredis& EXEC //执行1) (integer) 12) (integer) 23) (integer) 34) PONG在上面的例子中,我们看到了QUEUED的字样,这表示我们在用MULTI组装事务时,每一个命令都会进入到内存队列中缓存起来,如果出现QUEUED则表示我们这个命令成功插入了缓存队列,在将来执行EXEC时,这些被QUEUED的命令都会被组装成一个事务来执行。对于事务的执行来说,如果redis开启了AOF持久化的话,那么一旦事务被成功执行,事务中的命令就会通过write命令一次性写到磁盘中去,如果在向磁盘中写的过程中恰好出现断电、硬件故障等问题,那么就可能出现只有部分命令进行了AOF持久化,这时AOF文件就会出现不完整的情况,这时,我们可以使用redis-check-aof工具来修复这一问题,这个工具会将AOF文件中不完整的信息移除,确保AOF文件完整可用。有关事务,大家经常会遇到的是两类错误:调用EXEC之前的错误调用EXEC之后的错误“调用EXEC之前的错误”,有可能是由于语法有误导致的,也可能时由于内存不足导致的。只要出现某个命令无法成功写入缓冲队列的情况,redis都会进行记录,在客户端调用EXEC时,redis会拒绝执行这一事务。(这时2.6.5版本之后的策略。在2.6.5之前的版本中,redis会忽略那些入队失败的命令,只执行那些入队成功的命令)。我们来看一个这样的例子:127.0.0.1:6379& multi127.0.0.1:6379& haha //一个明显错误的指令(error) ERR unknown command 'haha'127.0.0.1:6379& ping127.0.0.1:6379& exec//redis无情的拒绝了事务的执行,原因是“之前出现了错误”(error) EXECABORT Transaction discarded because of previous errors.而对于“调用EXEC之后的错误”,redis则采取了完全不同的策略,即redis不会理睬这些错误,而是继续向下执行事务中的其他命令。这是因为,对于应用层面的错误,并不是redis自身需要考虑和处理的问题,所以一个事务中如果某一条命令执行失败,并不会影响接下来的其他命令的执行。我们也来看一个例子:127.0.0.1:6379& set age 23//age不是集合,所以如下是一条明显错误的指令127.0.0.1:6379& sadd age 15127.0.0.1:6379& set age 29127.0.0.1:6379& exec //执行事务时,redis不会理睬第2条指令执行错误1) OK2) (error) WRONGTYPE Operation against a key holding the wrong kind of value3) OK127.0.0.1:6379& get age"29" //可以看出第3条指令被成功执行了好了,我们来说说最后一个指令“WATCH”,这是一个很好用的指令,它可以帮我们实现类似于“乐观锁”的效果,即CAS(check and set)。WATCH本身的作用是“监视key是否被改动过”,而且支持同时监视多个key,只要还没真正触发事务,WATCH都会尽职尽责的监视,一旦发现某个key被修改了,在执行EXEC时就会返回nil,表示事务无法触发。127.0.0.1:6379& watch age //开始监视age127.0.0.1:6379& set age 24 //在EXEC之前,age的值被修改了127.0.0.1:6379& set age 25127.0.0.1:6379& exec //触发EXEC(nil) //事务无法被执行总结以 上就是我对Java开发大型互联网-如何使用Redis数据库之Rdis事务处理问题及其优化总结,分享给大家,希望大家知道什么是Java开发大型互联网-如何使用Redis数据库之Rdis事务处理问题及其优化。觉得收获的话可以点个关注收藏转发一波喔,谢谢大佬们支持!1、多写多敲代码,好的代码与扎实的基础知识一定是实践出来的2、可以去百度搜索腾讯课堂图灵学院的视频来学习一下java架构实战案例,还挺不错的。最后,每一位读到这里的网友,感谢你们能耐心地看完。希望在成为一名更优秀的Java程序员的道路上,我们可以一起学习、一起进步!都能赢取白富美,走向架构师的人生巅峰!3丶想了解学习以上课程内容可加群: 验证码头条(06 必过)欢迎大家的加入哟!本文由百家号作者上传并发布,百家号仅提供信息发布平台。文章仅代表作者个人观点,不代表百度立场。未经作者许可,不得转载。摆钟观点百家号最近更新:简介:长期关注互联网支付,第三方支付银行业发展作者最新文章相关文章Java操作Redis DB的例子
Java操作Redis DB的例子
package org.jack.
import java.util.HashM
import java.util.L
import java.util.M
import redis.
package org.jack.
import java.util.HashM
import java.util.L
import java.util.M
import redis.clients.jedis.J
public class RedisTest {
public static void main(String[] args) {
//连接redis服务
:第一个参数是redis的IP,第二个参数是redis访问端口
Jedis jedis = new Jedis("192.168.2.118",6379);
//密码验证-如果你没有设置redis密码可不验证即可使用相关命令
//jedis.auth("");
//简单的key-value 存储
jedis.set("redis", "myredis");
System.out.println(jedis.get("redis"));
//在原有值得基础上添加,如若之前没有该key,则导入该key
//之前已经设定了redis对应"myredis",此句执行便会使redis对应"myredisyourredis"
jedis.append("redis", "yourredis");
jedis.append("content", "rabbit");
//mset 是设置多个key-value值
参数(key1,value1,key2,value2,...,keyn,valuen)
//mget 是获取多个key所对应的value值
参数(key1,key2,key3,...,keyn)
返回的是个list
jedis.mset("name1","yangw","name2","demon","name3","elena");
System.out.println(jedis.mget("name1","name2","name3"));
Map&String,String& user = new HashMap&String,String&();
user.put("name", "cd");
user.put("password", "123456");
//map存入redis
jedis.hmset("user", user);
//mapkey个数
System.out.println(String.format("len:%d", jedis.hlen("user")));
//map中的所有键值
System.out.println(String.format("keys: %s", jedis.hkeys("user") ));
//map中的所有value
System.out.println(String.format("values: %s", jedis.hvals("user") ));
//取出map中的name字段值
List&String& rsmap = jedis.hmget("user", "name","password");
System.out.println(rsmap);
//删除map中的某一个键值 password
jedis.hdel("user", "password");
System.out.println(jedis.hmget("user", "name", "password"));
jedis.del("listDemo");
System.out.println(jedis.lrange("listDemo", 0, -1));
jedis.lpush("listDemo", "A");
jedis.lpush("listDemo", "B");
jedis.lpush("listDemo", "C");
System.out.println(jedis.lrange("listDemo", 0, -1));
System.out.println(jedis.lrange("listDemo", 0, 1));
jedis.sadd("sname", "wobby");
jedis.sadd("sname", "kings");
jedis.sadd("sname", "demon");
System.out.println(String.format("set num: %d", jedis.scard("sname")));
System.out.println(String.format("all members: %s", jedis.smembers("sname")));
System.out.println(String.format("is member: %B", jedis.sismember("sname", "wobby")));
System.out.println(String.format("rand member: %s", jedis.srandmember("sname")));
//删除一个对象
jedis.srem("sname", "demon");
System.out.println(String.format("all members: %s", jedis.smembers("sname")));
[yangw, demon, elena]
keys: [password, name]
values: [cd, 123456]
[cd, 123456]
[cd, null]
set num: 3
all members: [wobby, kings, demon]
is member: TRUE
rand member: kings
all members: [wobby, kings]
用云栖社区APP,舒服~
【云栖快讯】Apache旗下顶级开源盛会 HBasecon Asia 2018将于8月17日在京举行,现场仅600席,免费赠票领取入口&&
一种稳定可靠、性能卓越、可弹性伸缩的数据库服务。基于飞天分布式系统和全SSD盘高性能存储,支...
操作审计(ActionTrail)会记录您的云账户资源操作,提供操作记录查询,并可以将记录文...
MySQL 是全球最受欢迎的开源数据库,阿里云MySQL版 通过深度的内核优化和独享实例提供...
为您提供简单高效、处理能力可弹性伸缩的计算服务,帮助您快速构建更稳定、安全的应用,提升运维效...
数据库云大使java操作redis数据库实例(redis集群)
1、配置redis集群
&?xml version=&1.0& encoding=&UTF-8&?&
&redisCluster&
&!--userRoute --&
&clusterGroup name=&userRoute& selectdb=&1&&
&server host=&10.177.129.16& port=&6379&&&/server&
&server host=&10.177.129.15& port=&6379&&&/server&
&/clusterGroup&
&!--sessionRoute --&
&clusterGroup name=&sessionRoute& selectdb=&2&&
&server host=&10.177.129.16& port=&6379&&&/server&
&server host=&10.177.129.15& port=&6379&&&/server&
&/clusterGroup&
&!--publicData --&
&clusterGroup name=&publicData&&
&server host=&10.177.129.16& port=&6379&&&/server&
&server host=&10.177.129.15& port=&6379&&&/server&
&/clusterGroup&
&/redisCluster&
2、创建redis连接属性实体类
package com.isoftstone.cms.syscore.
* redis连接属性
* @author xiakai
public class RedisCluster
private String hostIp;
private String
public String getSelectdb() {
public void setSelectdb(String selectdb) {
this.selectdb =
public String getHostIp() {
return hostIp;
public void setHostIp(String hostIp) {
this.hostIp = hostIp;
public String getPort() {
public void setPort(String port) {
this.port =
3、解析redis集群配置
package com.iss.itreasury.test.
import java.io.IOE
import java.util.ArrayL
import java.util.HashM
import java.util.I
import java.util.L
import java.util.M
import java.util.S
import org.dom4j.D
import org.dom4j.DocumentE
import org.dom4j.E
import org.dom4j.io.SAXR
import org.springframework.core.io.ClassPathR
import org.springframework.core.io.R
import org.springframework.core.io.support.EncodedR
* 解析redis集群配置
* @author xiakai
public class RedisConfig {
public static Map&String,List&RedisCluster&& redisGroupMap =
//有参构造函数
public RedisConfig()
//获取所有clusterGroup组的键值对
public static Map&String,List&RedisCluster&& getRedisGroupMap(){
//读取xml文件
Document document=readXmlFile();
//获得clusterGroup节点的key 和 list
if(redisGroupMap == null)
redisGroupMap=getMapByItemsGroup(document);
return redisGroupM
//读取redisConfig配置文件
private static Document readXmlFile(){
//创建读入对象
SAXReader reader = new SAXReader();
//创建document实例
Document doc=
//从类路径下加载文件redisConfig.xml
Resource resource = new ClassPathResource(&redisClusterConfig.xml&);
//指定文件资源对应的编码格式(UTF-8),这样才能正确读取文件的内容,而不会出现乱码
EncodedResource encodeResource = new EncodedResource(resource,&UTF-8&);
doc = reader.read(encodeResource.getReader());
catch (IOException e) {
System.out.println(&无法读取系统配置文件redisConfig.xml,可能该文件不存在&);
} catch (DocumentException e) {
System.out.println(&解析redisConfig.xml文件出现异常&);
//读取xml节点,返回节点为redisGroup的Map
static Map&String,List&RedisCluster&& getMapByItemsGroup(Document document){
Map&String,List&RedisCluster&& itemmap=new HashMap&String,List&RedisCluster&&();
//获得根节点
Element root=document.getRootElement();
//获得根节点下所有子节点clusterGroup的list
List itemsList=root.selectNodes(&./clusterGroup&);
for(int i=0;i&itemsList.size();i++){
//获得节点Items
Element items=(Element)itemsList.get(i);
String groupName=items.attribute(&name&).getText();
String selectdb = items.attribute(&selectdb&)==null?&&:items.attribute(&selectdb&).getText();
if(groupName!=null&&groupName.equals(this.getGroupName())){
//获得clusterGroup下所有子节点service的list
List itemList=items.elements();
//获得service节点的值
List&RedisCluster& redisClusterList = getItemList(itemList,selectdb);
itemmap.put(groupName, redisClusterList);
catch(Exception e){
//获得所有Item下节点的redis服务节点
private static List&RedisCluster& getItemList(List itemList,String selectdb){
List&RedisCluster& redisClusterList = new ArrayList&RedisCluster&();
for(int i=0;i&itemList.size();i++){
//获得节点server
Element item=(Element)itemList.get(i);
String hostIp =
item.attribute(&host&).getText();
String port = item.attribute(&port&).getText();
RedisCluster redisCluster =new RedisCluster();
redisCluster.setHostIp(hostIp);
redisCluster.setPort(port);
redisCluster.setSelectdb(selectdb);
redisClusterList.add(redisCluster);
return redisClusterL
public static void main(String[] args) {
getRedisGroupMap();
//JedisUtil.insertPublicDataObject(&user1&, &张三&, JedisUtil.ONLINE_USER);
//JedisUtil.insertPublicDataObject(&user2&, &李四&, JedisUtil.ONLINE_USER);
//JedisUtil.insertPublicDataObject(&user3&, &王五&, JedisUtil.ONLINE_USER);
Set s = JedisUtil.getAllSet(JedisUtil.ONLINE_USER);
Iterator it = s.iterator();
while (it.hasNext()) {
String key = (String) it.next();
String value = JedisUtil.getString(key,JedisUtil.ONLINE_USER);
System.out.println(key + value);
String test = JedisUtil.getString(&user1&,JedisUtil.ONLINE_USER);
System.out.println(test);
4、操作redis数据库的工具类
package com.isoftstone.cms.syscore.
import java.lang.reflect.T
import java.util.L
import java.util.S
import java.util.zip.CRC32;
import redis.clients.jedis.J
import redis.clients.jedis.exceptions.JedisConnectionE
import com.google.gson.G
import com.isoftstone.cms.syscore.pojo.RedisC
public class JedisUtil {
public static final String STORE_LOGINUSER = &4&;// 商户登陆用户
public static final String STORE_INFO = &5&;// 商户状态 商户购买服务有效期
public static final String CHECK_CODE = &6&;// 验证码
public static final String MENU = &7&;// 全部菜单
public static final String SERVICE = &8&;// 服务收费信息
public static final String STORE_LOGINKEY = &9&;// 初始化登录公钥 私钥对
// 固定key
public static final String ALL_MENU_KEY = &ALL_MENU_KEY&;
public static final String BUY_SERVICE_KEY = &BUY_SERVICE_KEY&;// 服务收费购买key
public static final String ALL_SERVICE_KEY = &ALL_SERVICE_KEY&;//所有服务
public static final String MENU_AUTHORITY = &MENU_AUTHORITY&;// 菜单权限
public static final String STORE_MENU_KEY = &STORE_MENU_KEY&;// 需要商户分配的业务菜单
public static final String STORE_SERVICE_KEY = &STORE_SERVICE_KEY&;// 商户收费key
public static final String SYSTE_MENU_KEY = &SYSTE_MENU_KEY&;// 系统管理菜单key
// jedis服务组业务类型
public static final String CONT_CLUSTERNAME_PUBLICDATA = &publicData&;
public static final String CONT_CLUSTERNAME_SESSIONROUTE = &sessionRoute&;
public static final String CONT_CLUSTERNAME_USERROUTE = &userRoute&;
// 操作方式 0 插入 1获取 2 删除
public static final long INSERT_OPERATION = 0;
public static final long GET_OPERATION = 1;
public static final long DELETE_OPERATION = 2;
// 验证码过期秒数
public static final int CHECKCODE_EXPIRESECONDS = 5*60;
// session过期秒数
public static final int EXPIRESECONDS = 30 * 60;
private static void closeJedis(Jedis jedis) {
jedis.quit();
} catch (JedisConnectionException e) {
e.printStackTrace();
jedis.disconnect();
* 根据Key获取字符串
* @param key
* @param jedisGroup
public static String getString(String key, String selectdb) {
Jedis jedis = getPublicDataJedis(key, GET_OPERATION, selectdb);
return jedis.get(key);
* 获取所有数据set
* @param selectdb
public static Set getAllSet(String selectdb) {
Jedis jedis = getDataJedis(GET_OPERATION, selectdb);
return jedis.keys(&*&);
* 默认取配置文件的第一个数据库
* @param operation
* @param selectdb
private static Jedis getDataJedis(long operation, String selectdb) {
if (RedisConfig.redisGroupMap == null) {
RedisConfig.redisGroupMap = RedisConfig.getRedisGroupMap();
List&RedisCluster& clustersList = RedisConfig.redisGroupMap.get(CONT_CLUSTERNAME_PUBLICDATA);
int clusterNo = 0;//默认存到第一个
RedisCluster cluster = clustersList.get(clusterNo);
Jedis jedis = new Jedis(cluster.getHostIp(), Integer.valueOf(cluster.getPort()));
jedis.select(Integer.valueOf(selectdb));
* 删除数据
* @param key
* @param jedisGroup
public static void deleteObject(String key, String jedisGroup) {
Jedis jedis = getJedis(key, jedisGroup, DELETE_OPERATION);
jedis.del(key);
closeJedis(jedis);
* 删除公共数据
* @param key
* @param objClass
* @param selectdb
public static void deletePublicDataObject(String key, String selectdb) {
Jedis jedis = getPublicDataJedis(key, DELETE_OPERATION, selectdb);
jedis.del(key);
closeJedis(jedis);
* 获取jedis的库实例
* @param key
* @param jedisGroup
* @param operation
private static Jedis getJedis(String key, String jedisGroup, long operation) {
if (RedisConfig.redisGroupMap == null) {
RedisConfig.redisGroupMap = RedisConfig.getRedisGroupMap();
List&RedisCluster& clustersList = RedisConfig.redisGroupMap.get(jedisGroup);
int arrayLength = clustersList.size();
// 根据key值算出该信息应该存入到那个
int clusterNo = getRedisNo(key, arrayLength);
RedisCluster cluster = clustersList.get(clusterNo);
Jedis jedis = new Jedis(cluster.getHostIp(), Integer.valueOf(cluster.getPort()));
jedis.select(Integer.valueOf(cluster.getSelectdb()));
* redis key值获取对象
* @param key
* @param objClass
* @param jedisGroup
public static Object getObject(String key, Class objClass, String jedisGroup) {
Jedis jedis = getJedis(key, jedisGroup, GET_OPERATION);
String sObj = jedis.get(key);
closeJedis(jedis);
Gson gson = new Gson();
return gson.fromJson(sObj, objClass);
* 获取公共数据jedis的库实例
* @param key
* @param jedisGroup
* @param operation
private static Jedis getPublicDataJedis(String key, long operation, String selectdb) {
if (RedisConfig.redisGroupMap == null) {
RedisConfig.redisGroupMap = RedisConfig.getRedisGroupMap();
List&RedisCluster& clustersList = RedisConfig.redisGroupMap.get(CONT_CLUSTERNAME_PUBLICDATA);
int arrayLength = clustersList.size();
// 根据key值算出该信息应该存入到那个
int clusterNo = getRedisNo(key, arrayLength);
RedisCluster cluster = clustersList.get(clusterNo);
Jedis jedis = new Jedis(cluster.getHostIp(), Integer.valueOf(cluster.getPort()));
jedis.select(Integer.valueOf(selectdb));
* publicdata redis key值获取对象
* @param key
* @param objClass
* @param jedisGroup
public static Object getPublicDataObject(String key, Class objClass, String selectdb) {
Jedis jedis = getPublicDataJedis(key, GET_OPERATION, selectdb);
String sObj = jedis.get(key);
closeJedis(jedis);
Gson gson = new Gson();
return gson.fromJson(sObj, objClass);
* publicdata redis key值获取对象 List&Entity&
* @param key
* @param objClass
* @param jedisGroup
public static Object getPublicDataObjectByType(String key, Type type, String selectdb) {
Jedis jedis = getPublicDataJedis(key, GET_OPERATION, selectdb);
String sObj = jedis.get(key);
closeJedis(jedis);
Gson gson = new Gson();
return gson.fromJson(sObj, type);
* 获取redis服务器库编号
* @param hashKey
public static int getRedisNo(String key, int arraySize) {
long hashKey = hash(key);
int redisNo = (int) (hashKey % arraySize);
return redisNo;
* 根据key值算出hash值
* @param k
public static long hash(String k) {
CRC32 crc32 = new CRC32();
crc32.update(k.getBytes());
return crc32.getValue();
* redis 根据key值将对象插入到不同的库中
* @param key
* @param insertObj
* @param jedisGroup
public static void insertObject(String key, Object insertObj, String jedisGroup) {
Jedis jedis = getJedis(key, jedisGroup, INSERT_OPERATION);
Gson gson = new Gson();
jedis.set(key, gson.toJson(insertObj));
closeJedis(jedis);
* redis 根据key值将对象插入到不同的库中
* @param key
* @param insertObj
* @param jedisGroup
* @param expire
public static void insertObject(String key, Object insertObj, String jedisGroup, int expireSeconds) {
Jedis jedis = getJedis(key, jedisGroup, INSERT_OPERATION);
Gson gson = new Gson();
jedis.setex(key, expireSeconds, gson.toJson(insertObj));
closeJedis(jedis);
* publicdata redis 根据key值将对象插入到不同的库中
* @param key
* @param insertObj
* @param jedisGroup
public static void insertPublicDataObject(String key, Object insertObj, String selectdb) {
Jedis jedis = getPublicDataJedis(key, INSERT_OPERATION, selectdb);
Gson gson = new Gson();
jedis.set(key, gson.toJson(insertObj));
closeJedis(jedis);
* publicdata redis 根据key值将对象插入到不同的库中,
* @param key
* @param insertObj
* @param jedisGroup
* @param expireSeconds
public static void insertPublicDataObject(String key, Object insertObj, String selectdb, int expireSeconds) {
Jedis jedis = getPublicDataJedis(key, INSERT_OPERATION, selectdb);
Gson gson = new Gson();
jedis.setex(key, expireSeconds, gson.toJson(insertObj));
closeJedis(jedis);
* 更新redis中key的超时时间
* @param key
* @param jedisGroup
* @param expireSeconds
public static void resetExpireSeconds(String key, String jedisGroup, int expireSeconds) {
Jedis jedis = getJedis(key, jedisGroup, GET_OPERATION);
jedis.expire(key, expireSeconds);
closeJedis(jedis);
5、所需jar包
看过本文的人也看了:
我要留言技术领域:
取消收藏确定要取消收藏吗?
删除图谱提示你保存在该图谱下的知识内容也会被删除,建议你先将内容移到其他图谱中。你确定要删除知识图谱及其内容吗?
删除节点提示无法删除该知识节点,因该节点下仍保存有相关知识内容!
删除节点提示你确定要删除该知识节点吗?}

我要回帖

更多关于 java结合redis秒杀功能 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信