Spring Data Redis入门示例:基于RedisTemplate (三)

摘要:
并且RedisTemplate是一个线程安全的类。此外,模板还提供了用于处理特定类型或特定键的操作视图。

使用底层API:RedisConnection操作Redis,需要对数据进行手动转换(String <---->byte),需要进行多数重复性工作,效率低下;org.springframework.data.redis.core.RedisTemplate 类提供了与Redis交互的高级抽象,该类负责序列化和连接管理,对大多数重复性工作进行了封装。并且 RedisTemplate是一个线程安全的类。

此外,模板还提供了用于处理特定类型或特定键的操作视图。包含的接口见下表:

类型操作封装

例子:上一节第三步的配置文件添加下面内容:

 <bean   class="org.springframework.data.redis.core.RedisTemplate">
     <property name="connectionFactory" ref="jedisConnectionFactory"/>
</bean>

测试RedisTemplate:

// RedisTemplate 操作
RedisTemplate redisTemplate = context.getBean(RedisTemplate.class);
    
// 获取String类型的操作类
ValueOperations<String, String> valueOperations = redisTemplate.opsForValue();
valueOperations.set("haha", "你好");
System.out.println(valueOperations.get("haha"));

优化:
上面的例子,当需要操作某种类型时,就从 RedisTemplate 模板类中获取对应操作类的引用,这一步是重复的,可以通过 Spring DI 进行注入,可以省下一行代码,代码如下

@Autowired
private RedisTemplate template;

@Resource(name = "redisTemplate")
private ValueOperations valueOps;

示例说明

1. RedisTemplate是一个泛型类,可以指定key和value的类型
2. 想操作Redis的哪种类型数据,从RedisTemplate 获取对应操作的引用,如上面的valueOperations 
3. 使用RedisTemplate,没有了底层API将数据转byte的操作

免责声明:文章转载自《Spring Data Redis入门示例:基于RedisTemplate (三)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇如何优化页面加载速度linux shell脚本编程笔记(五): 重定向下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

java Redis读取数据方法

1. public Map<String, List<CellInfo1>>getSceneCoverCellForRedis(){ Jedis jedis = null; Map<String, List<CellInfo1>> cellMap= null;...

Ubuntu上交叉编译valgrind for Android 4.0.4的过程与注意事项

编译环境:Ubuntu x86_64(Linux root 2.6.32-45-generic #101-Ubuntu SMP Mon Dec 3 15:39:38 UTC 2012 x86_64 GNU/Linux) 运行环境:Android 4.0.4 (Linux kernel 3.0.21 OMAP4460) 一、下载NDK9和valgrind...

Redis 的过期策略都有哪些?

面试题redis 的过期策略都有哪些?内存淘汰机制都有哪些?手写一下 LRU 代码实现? 常见的有两个问题:• 往 redis 写入的数据怎么没了?可能有同学会遇到,在生产环境的 redis 经常会丢掉一些数据,写进去了,过一会儿可能就没了。我的天,同学,你问这个问题就说明 redis 你就没用对啊。redis 是缓存,你给当存储了是吧?啥叫缓存?用内存当...

python自动化测试-D9-学习笔记之一(线程池)

# 封装 线程池import threadpoolclass MyPool(object):def __init__(self,func,size=20,data=None):#func 函数,size线程数,data数据self.func = funcself.size = sizeself.data = dataself.pool()def pool(...

redis 在java中的使用

1、首先下载jar包放到你的工程中 2、练习 package com.jianyuan.redisTest; import java.util.Iterator;import java.util.List;import java.util.Set; import redis.clients.jedis.Jedis; public class RedisT...

Ado.net entity data model搭建三层架构

这个三层不像MVC框架,因为只是业界的规范,所以理论上分开3层就可以了。 首先建立新的解决方案,建立类库Models,BLL,DAL,还有新建个网站WebForm, 如图 这个层次结构比较清晰的。Models层的edmx是如何建立的呢,接着看下面: 这里新建个项目,在安装的模版选择 ADO.NET Entity Data Model,然后是导航式向导,...