日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Maven中Spring-Data-Redis存储对象(redisTemplate)

發布時間:2023/12/10 javascript 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Maven中Spring-Data-Redis存储对象(redisTemplate) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Redis是一種nosql數據庫,在開發中常用做緩存。Jedis是Redis在Java中的redis- client.在此之前,希望已經了解redis的基本使用和Maven的使用。建立Maven Project之后,在POM.xml中添加jedis和spring-data-redis的依賴如下:

<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.0.0</version> <type>jar</type> <scope>compile</scope> </dependency> <!-- spring-redis --> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-redis</artifactId> <version>1.0.0.RELEASE</version> </dependency> Redis連接數據庫參數如下:applicationContext-redis.properties

#redis config redis.pool.maxActive=100 redis.pool.maxIdle=20 redis.pool.maxWait=1000 redis.pool.testOnBorrow=true redis.hostname=localhost redis.port=6379 redis.password= 在上下文配置中使用key-value讀取方式讀取properties中的值:

<!-- Jedis 連接池配置--> <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig"> <property name="maxActive" value="${redis.pool.maxActive}" /> <property name="maxIdle" value="${redis.pool.maxIdle}" /> <property name="maxWait" value="${redis.pool.maxWait}" /> <property name="testOnBorrow" value="${redis.pool.testOnBorrow}" /> </bean> <!-- Jedis ConnectionFactory 數據庫連接配置--> <bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"> <property name="hostName" value="${redis.hostname}" /> <property name="port" value="${redis.port}" /> <property name="password" value="${redis.password}" /> <property name="poolConfig" ref="jedisPoolConfig" /> </bean> <!—- redisTemplate配置,redisTemplate是對Jedis的對redis操作的擴展,有更多的操作,封裝使操作更便捷 --> <bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate" p:connection-factory-ref="jedisConnectionFactory" />

上面redisTemplate已經基本配置完成。

接下來創建User類,必須實現或者間接實現Serializable接口:

Redis存儲對象是使用序列化,spring-data-redis已經將序列化的功能內置,不需要我們去管,我們只需要調用api就可以使用。SerialVersionUID字段對序列化擴展有用,為了以后擴展或者縮減字段時不會造成反序列化出錯。

public class User implements Serializable { private static final long serialVersionUID = -7898194272883238670L; public static final String OBJECT_KEY = "USER"; public User() { } public User(String id) { } public User(String id, String name) { this.id = id; this.name = name; } private String id; private String name; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String toString() { return "User [id=" + id + ", name=" + name + "]"; } public String getKey() { return getId(); } public String getObjectKey() { return OBJECT_KEY; } } 創建userService類來操作redis增刪查改緩存對象。

public class UserService { RedisTemplate<String, User> redisTemplate; public RedisTemplate<String, User> getRedisTemplate() { return redisTemplate; } public void setRedisTemplate(RedisTemplate<String, User> redisTemplate) { this.redisTemplate = redisTemplate; } public void put(User user) { redisTemplate.opsForHash().put(user.getObjectKey(), user.getKey(), user); } public void delete(User key) { redisTemplate.opsForHash().delete(key.getObjectKey(), key.getKey()); } public User get(User key) { return (User) redisTemplate.opsForHash().get(key.getObjectKey(), key.getKey()); } } 使用注解方式自動注入, 在UserService注解@Service(“userService”),也可以在Service里寫名字,默認是第一字母小寫。

@Service("userService") public class UserService { @Autowired RedisTemplate<String, User> redisTemplate; …… …… } 在上下文配置文件中,添加自動掃描包的context節點, Base-package的路徑要覆蓋包含注解的類文件

<context:component-scan base-package="*" /> 在main中來簡單操作一下:

public class Main { public static void main( String[] args ) { ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath*:/conf/applicationContext.xml" ); UserService userService = (UserService) applicationContext.getBean("userService"); User user1 = new User("user1ID", "User 1"); User user2 = new User("user2ID", "User 2"); System.out.println("==== getting objects from redis ===="); System.out.println("User is not in redis yet: " + userService.get(user1)); System.out.println("User is not in redis yet: " + userService.get(user2)); System.out.println("==== putting objects into redis ===="); userService.put(user1); userService.put(user2); System.out.println("==== getting objects from redis ===="); System.out.println("User should be in redis yet: " + userService.get(user1)); System.out.println("User should be in redis yet: " + userService.get(user2)); System.out.println("==== deleting objects from redis ===="); userService.delete(user1); userService.delete(user2); System.out.println("==== getting objects from redis ===="); System.out.println("User is not in redis yet: " + userService.get(user1)); System.out.println("User is not in redis yet: " + userService.get(user2)); } } 確保redis服務器是開啟狀態之后就可以運行程序。運行結果如下:



轉載自:點擊打開鏈接





總結

以上是生活随笔為你收集整理的Maven中Spring-Data-Redis存储对象(redisTemplate)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。