导航:首页 > 专利知识 > redislist有效期

redislist有效期

发布时间:2021-07-19 01:25:24

㈠ redis 能不能给列表或者合集里边的元素设置到期时间

用ip当做key取值如果不存在,点击量加1,并且设置一个值,有效期半小时如果存在,忽略不处理!

㈡ redis 有序集合可以设置过期时间吗

可以用sorted set,把要过期的member和key的信息放在sorted set的member里,把过期时间放在score中。

㈢ redis怎么存放一个list

如果需要用到Redis存储List对象,而list又不需要进行操作,可以按照MC的方式进行存储,不过Jedis之类的客户端没有提供API,可以有两种思路实现:
1. 分别序列化 elements ,然后 set 存储
2. 序列化List对象,set存储
这两种方法都类似MC的 Object方法存储,运用这种方式意味着放弃Redis对List提供的操作方法。
import net.spy.memcached.compat.CloseUtil;
import net.spy.memcached.compat.log.Logger;
import net.spy.memcached.compat.log.LoggerFactory;
import redis.clients.jedis.Client;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

import java.io.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;

/**
* Created by IntelliJ IDEA.
* User: lifeng.xu
* Date: 12-6-11
* Time: 上午11:10
* To change this template use File | Settings | File Templates.
*/
public class JedisTest {

private static Logger logger = LoggerFactory.getLogger(JedisTest.class);

/**
* Jedis Pool for Jedis Resource
* @return
*/
public static JedisPool buildJedisPool(){
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxActive(1);
config.setMinIdle(50);
config.setMaxIdle(3000);
config.setMaxWait(5000);
JedisPool jedisPool = new JedisPool(config,
"*****", ****);
return jedisPool;
}

/**
* Test Data
* @return
*/
public static List<User> buildTestData(){
User a = new User();
a.setName("a");
User b = new User();
b.setName("b");
List<User> list = new ArrayList<User>();
list.add(a);
list.add(b);
return list;
}

/**
* Test for
*/
public static void testSetElements(){
List<User> testData = buildTestData();
Jedis jedis = buildJedisPool().getResource();
String key = "testSetElements" + new Random(1000).nextInt();
jedis.set(key.getBytes(), ObjectsTranscoder.serialize(testData));

//验证
byte[] in = jedis.get(key.getBytes());
List<User> list = ObjectsTranscoder.deserialize(in);
for(User user : list){
System.out.println("testSetElements user name is:" + user.getName());
}
}

public static void testSetEnsemble(){
List<User> testData = buildTestData();
Jedis jedis = buildJedisPool().getResource();
String key = "testSetEnsemble" + new Random(1000).nextInt();
jedis.set(key.getBytes(), ListTranscoder.serialize(testData));

//验证
byte[] in = jedis.get(key.getBytes());
List<User> list = (List<User>)ListTranscoder.deserialize(in);
for(User user : list){
System.out.println("testSetEnsemble user name is:" + user.getName());
}
}

public static void main(String[] args) {
testSetElements();
testSetEnsemble();
}

public static void close(Closeable closeable) {
if (closeable != null) {
try {
closeable.close();
} catch (Exception e) {
logger.info("Unable to close %s", closeable, e);
}
}
}

static class User implements Serializable{
String name;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}
}

static class ObjectsTranscoder{

public static byte[] serialize(List<User> value) {
if (value == null) {
throw new NullPointerException("Can't serialize null");
}
byte[] rv=null;
ByteArrayOutputStream bos = null;
ObjectOutputStream os = null;
try {
bos = new ByteArrayOutputStream();
os = new ObjectOutputStream(bos);
for(User user : value){
os.writeObject(user);
}
os.writeObject(null);
os.close();
bos.close();
rv = bos.toByteArray();
} catch (IOException e) {
throw new IllegalArgumentException("Non-serializable object", e);
} finally {
close(os);
close(bos);
}
return rv;
}

public static List<User> deserialize(byte[] in) {
List<User> list = new ArrayList<User>();
ByteArrayInputStream bis = null;
ObjectInputStream is = null;
try {
if(in != null) {
bis=new ByteArrayInputStream(in);
is=new ObjectInputStream(bis);
while (true) {
User user = (User) is.readObject();
if(user == null){
break;
}else{
list.add(user);
}
}
is.close();
bis.close();
}
} catch (IOException e) {
logger.warn("Caught IOException decoding %d bytes of data",
in == null ? 0 : in.length, e);
} catch (ClassNotFoundException e) {
logger.warn("Caught CNFE decoding %d bytes of data",
in == null ? 0 : in.length, e);
} finally {
CloseUtil.close(is);
CloseUtil.close(bis);
}
return list;
}
}

static class ListTranscoder{
public static byte[] serialize(Object value) {
if (value == null) {
throw new NullPointerException("Can't serialize null");
}
byte[] rv=null;
ByteArrayOutputStream bos = null;
ObjectOutputStream os = null;
try {
bos = new ByteArrayOutputStream();
os = new ObjectOutputStream(bos);
os.writeObject(value);
os.close();
bos.close();
rv = bos.toByteArray();
} catch (IOException e) {
throw new IllegalArgumentException("Non-serializable object", e);
} finally {
close(os);
close(bos);
}
return rv;
}

public static Object deserialize(byte[] in) {
Object rv=null;
ByteArrayInputStream bis = null;
ObjectInputStream is = null;
try {
if(in != null) {
bis=new ByteArrayInputStream(in);
is=new ObjectInputStream(bis);
rv=is.readObject();
is.close();
bis.close();
}
} catch (IOException e) {
logger.warn("Caught IOException decoding %d bytes of data",
in == null ? 0 : in.length, e);
} catch (ClassNotFoundException e) {
logger.warn("Caught CNFE decoding %d bytes of data",
in == null ? 0 : in.length, e);
} finally {
CloseUtil.close(is);
CloseUtil.close(bis);
}
return rv;
}
}
}

㈣ jedis里怎么设置数据的有效期

1、下载redis安装包,解压后进入redis目录,执行命令redis-server.exe redis.windows.conf,redis解压后目录如图。回

㈤ 怎么查看redis数据的过期时间

通过EXPIRE 命令或者PEXPIRE 命令,客户端可以以秒或者毫秒精度为数据库中的某个键设置生存时间( Time To Live , TTL) ,在经过指定的秒数或者毫秒数之后,服务器就会自动删除生存时间为0的键:
redis> SET key value
OK
redis> EXP 工RE key 5
(integer) 1
redis> GET key // 5 秒之内
"value"
redis> GET key // 5 秒之后
(nil)

㈥ PHP操作redis如何设置有效期

自己写方法对比呀 写入的时候加时间戳,然后定时干掉超时的

㈦ redis 设置值得有效时间有无限吗

如果内容都是重要来的,那只能选择扩展源内存,内存不够怎么办1、在redis的使用过程中,比如在业务运行的情况下,有时候需要急需修改redis的配置,这时要么赶紧删除无用的内存,要么扩展内存。
2、如果有无用的内容可删除那么所有问题都已经解决。
3

㈧ 往redis存数据的时候不设置过期时间 是不是这条数据就永久

不会过期。 但是这样说有点绝对。一般情况是这样,当你配置中开启了超专出最大内存限属制就写磁盘的话,那么这些没有设置过期时间的key可能会被写到磁盘上。 假如没设置。那么REDIS将使用LRU机制,将内存中的老数据删除,并写入新数据。
可以用sorted set,把要过期的member和key的信息放在sorted set的member里,把过期时间放在score中。跑个任务用zrangebyscore遍历就行了。用sorted set好处是只需要遍历过期的member,不用扫描整个过期member集合。

㈨ redis怎么存储list对象

方案一:直接使用List结构,List里面存储二进制的任务Bean信息,这样做查询全部任务很方便,查询单条任务速度较慢,并且删除和修改状态很麻烦;方案二:直接使用Hash结构,Hash的key存储任务ID,value存储二进制的Bean信息,这样做查询所有任务、查询单条任务以及删除任务都很快,但是修改状态也必须先取出数据再修改再插入!

阅读全文

与redislist有效期相关的资料

热点内容
快递时效投诉 浏览:782
世纪创造绝缘有限公司 浏览:600
聚投诉珍爱网 浏览:47
公共卫生服务协议书2017 浏览:805
改革工作成果汇报 浏览:49
医疗纠纷管理伦理的主要要求不包括 浏览:959
工业光魔创造不可能720p 浏览:243
君主立宪制是法国大革命的成果 浏览:13
王成果青岛科技大学 浏览:519
护理品管圈成果汇报书 浏览:875
使用权获取途径 浏览:759
怎么投诉奥迪4s店 浏览:31
美术教师校本研修成果 浏览:740
股权转让合同模板 浏览:638
知识产权部门重点的工作计划范文 浏览:826
用地批准书能证明土地的使用权权吗 浏览:829
拓荒者知识产权 浏览:774
商标侵权事宜处理委托书 浏览:168
内容无版权今日头条 浏览:327
房产纠纷诉讼时效是多长时间 浏览:269