Redis的缓存操作简单(拿,把)

Redis的缓存操作简单(拿,把)
本文介绍了简单的Redis的缓存操作,包括jedisjar包的引入,需要配置redis和RedisDao的工具,数据放在redis,数据从数据得到(获得),和逻辑访问redis。

1。介绍了绝地武士的jar包

redis.clients
绝地
2.7.3
com.dyuproject.protostuff
protostuff核心
1.0.8
com.dyuproject.protostuff
protostuff运行
1.0.8

注:为什么要序列化依赖的jar包protostuff介绍

1)提取redis数据序列化。我们需要使用protostuff反序列化操作谈转化成我们需要的对象序列化的对象。

2)当我们把数据到Redis,我们需要使用protostuff序列化操作对象转换成序列化对象投入使用

二,在Spring的配置文件注入redis把IOC容器在春天

U3000 U3000
U3000 U3000

小心 uff1a

1)在这里,RedisDao路是我包的路径,注意你需要用自己的路径,当你配置。

2)当地的redis服务本地使用

3)redis服务默认端口是6379

三、一些工具,RedisDao需要

/ / redis连接
私人最终jedispool jedispool; / /对象根据字节码文件,生成一个空的对象
私人runtimeschema模式= runtimeschema.createfrom(对象类); / / Object.class:字节码获取对象

市民RedisDao(字符串IP,端口){
jedispool =新jedispool(IP、端口);
}
小心 uff1a

1)redisdao需要使用连接池jedispool,就像JDBC数据库连接池,我们初始化连接池在redisdao构造函数

2)我们需要一个工具runtimeschema可以生成基于对象的字节码文件空对象。你想用什么对象,你写你的目标对象的位置(Object.class:该对象的字节码文件)

3)连接池的jedispool初始化需要两个参数:IP、端口

四。把数据在redis(放)

/ /对象缓存Redis
公共字符串putobject(对象){
/ /缓存逻辑:对象->字节{ } --> -->序列化缓存Redis
{试
不过,jedispool.getresource(绝地武士); / /获得连接对象的使用,相当于JDBC连接
尝试{
字符串键=对象:+ obj.getid();
/ /连载
字节字节= {} protostuffioutil.tobytearray(秒杀,图式,
linkedbuffer.allocate(linkedbuffer。default_buffer_size)); / /如果目标太大,将缓冲区
对缓存
int超时= 60 * 60;将超时超时设置为一小时,一致性维护
结果字符串= jedis.setex(key.getbytes()、超时、字节);
返回结果;
最后,{ }
Jedis.close();
}
} catch(异常E){
E.printStack();
}
返回null;
}
小心 uff1a

1)缓存逻辑:对象--> -->字节{ } -->写Redis的序列化,序列化的对象第一,然后写入到Redis!

2)我们有我们运作的Redis之前得到redis连接对象,从连接池

五。从Redis数据(得到)

/ /查询从Redis缓存
公共对象GetObject(长ID){
/ / Redis的运作逻辑
{试
不过,jedispool.getresource(绝地武士); / /缓存的连接对象,数据库连接对象的连接的等效
{试
字符串键=对象+身份证;
实体对象没有实现内部序列化。
/ /缓存逻辑:getbyte { } --> -->对象反序列化
字节字节= {} jedis.get(key.getbytes()); / /阵列从绝地的目标对象序列化的对象
如果(字节)!= NULL){
/ /反序列化逻辑
对象= schema.newmessage(obj); / /创建一个新的空对象模式
ProtostuffIOUtil.mergeFrom (bytes, obj, schema); / / deserialized operation
返回对象;
}

{最后}
Jedis.close();
}

} catch(异常E){
E.printStack();
}
返回null;
}
小心 uff1a

1)数据访问逻辑:Redis -->字节{ } ->对象->反序列化

2)当我们把数据是关键/价值形式:ID /对象。当我们需要的数据,我们把它根据ID

六。逻辑查询时使用
伪代码:
得到redis_cache / / Redis的形式第一次查询
如果NULL /如果没有
从数据库中再次从数据库查询中获取
如果NULL / 如果仍然没有
返回null,然后返回空
否则
投入redis_cache / /数据到redis
obj / /后返回数据
别人/ /如果从Redis查询
obj / /返回直接返回数据
以上是本文的全部内容,希望能对您有所帮助,希望大家多多支持
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部