网站运营指标,北京市建设工程造价管理处网站,莆田网站制作设计,吉林市最新消息今天Redis是一种nosql数据库#xff0c;在开发中常用做缓存。Jedis是Redis在Java中的redis- client.在此之前#xff0c;希望已经了解redis的基本使用和Maven的使用。建立Maven Project之后#xff0c;在POM.xml中添加jedis和spring-data-redis的依赖如下#xff1a; depen…Redis是一种nosql数据库在开发中常用做缓存。Jedis是Redis在Java中的redis- client.在此之前希望已经了解redis的基本使用和Maven的使用。建立Maven Project之后在POM.xml中添加jedis和spring-data-redis的依赖如下 dependency groupIdredis.clients/groupId artifactIdjedis/artifactId version2.0.0/version typejar/type scopecompile/scope
/dependency
!-- spring-redis --
dependency groupIdorg.springframework.data/groupId artifactIdspring-data-redis/artifactId version1.0.0.RELEASE/version
/dependency
Redis连接数据库参数如下applicationContext-redis.properties#redis config
redis.pool.maxActive100
redis.pool.maxIdle20
redis.pool.maxWait1000
redis.pool.testOnBorrowtrue
redis.hostnamelocalhost
redis.port6379
redis.password
在上下文配置中使用key-value读取方式读取properties中的值!-- Jedis 连接池配置--
bean idjedisPoolConfig classredis.clients.jedis.JedisPoolConfig property namemaxActive value${redis.pool.maxActive} / property namemaxIdle value${redis.pool.maxIdle} / property namemaxWait value${redis.pool.maxWait} / property nametestOnBorrow value${redis.pool.testOnBorrow} /
/bean
!-- Jedis ConnectionFactory 数据库连接配置--
bean idjedisConnectionFactory classorg.springframework.data.redis.connection.jedis.JedisConnectionFactory property namehostName value${redis.hostname} / property nameport value${redis.port} / property namepassword value${redis.password} / property namepoolConfig refjedisPoolConfig /
/bean
!—- redisTemplate配置redisTemplate是对Jedis的对redis操作的扩展有更多的操作封装使操作更便捷 --
bean idredisTemplate classorg.springframework.data.redis.core.RedisTemplate p:connection-factory-refjedisConnectionFactory / 上面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 { RedisTemplateString, User redisTemplate; public RedisTemplateString, User getRedisTemplate() { return redisTemplate; } public void setRedisTemplate(RedisTemplateString, 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 RedisTemplateString, 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服务器是开启状态之后就可以运行程序。运行结果如下转载自点击打开链接