Spring 使用RedisTemplate操作Redis
2024-10-04 18:25:51
首先添加依赖:
<!-- https://mvnrepository.com/artifact/redis.clients/jedis -->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency> <!-- https://mvnrepository.com/artifact/org.springframework.data/spring-data-redis -->
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
<version>2.1.3.RELEASE</version>
</dependency>
创建:SpringConfig
package the_mass.redis; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.StringRedisTemplate; @Configuration //配置
@ComponentScan("the_mass.redis") //扫描那个包
public class SpringConfig { @Bean
RedisConnectionFactory redisConnectionFactory(){ //获取连接工厂
return new JedisConnectionFactory(); //返回
} @Bean
RedisTemplate redisTemplate(){ //模板
return new StringRedisTemplate(redisConnectionFactory()); //使用连接工厂返回
} }
创建:RedisService
package the_mass.redis; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.connection.RedisConnection;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisOperations;
import org.springframework.stereotype.Service; import java.nio.charset.StandardCharsets; @Service
public class RedisService { @Autowired
RedisConnectionFactory factory; //通过Redis连接的线程安全工厂 @Autowired
RedisOperations redisOperations; //通过公共接口RedisOperations public void testRedis() {
RedisConnection connection = factory.getConnection();
byte[] bytes = connection.get("hello".getBytes());
System.out.println(new String(bytes, StandardCharsets.UTF_8));
} public void testRedisTemplate() {
Object hello = redisOperations.opsForValue().get("hello");
System.out.println(hello);
} }
创建:JedisDemo
package the_mass.redis; import redis.clients.jedis.Jedis; public class JedisDemo {
public void execute() { Jedis jedis = new Jedis(); //创建客户端 Boolean hello = jedis.exists("hello");
System.out.println(hello); String s = jedis.get("hello");
System.out.println(s); jedis.set("hello", "wrold:23"); Long hello1 = jedis.exists("hello", "hello:123");
System.out.println(hello1); }
}
测试:
package the_mass.redis; import org.springframework.context.annotation.AnnotationConfigApplicationContext; public class Main {
public static void main(String[] args) {
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class); RedisService redisService = context.getBean(RedisService.class);
redisService.testRedis();
redisService.testRedisTemplate();
}
}
注意:首先记得 设置值,不然会报空指针异常
最新文章
- Redis Sentinel机制与用法说明【转】
- jsp连接SQL Server数据库的方式
- Asp.net Mvc模块化开发之分区扩展框架
- poj 1324 Holedox Moving
- ccpc 2016 省赛
- linx 实用操作命令二
- VPW协议解析
- Canvas使用笔记
- SQL 判断字段中指定字符出现的次数
- XFire中Services.xml 配置的一些细节
- EasyUI篇のico
- scrapy_对传到items的值预处理
- 解决Chrome浏览器访问https提示“您的连接不是私密连接”的问题
- C 标准库头文件
- bootstrap模态框手动关闭遮盖层不消失
- Java中关于Map的使用(HashMap、ConcurrentHashMap)
- sh - 脚本学习 启动/停止/重启/部署jetty crontab
- jq ajax post body raw传json
- CSS day49
- java中使用相对路径读取文件的写法总结 ,以及getResourceAsStream() (转)