Redis是一种特殊类型的数据库,他被称之为key-value存储。顾名思义,key-value存储保存的是键值对。实际上,key-value存储与hashMap有很大的相似性。可以不夸张的说,他们就是持久化的hashMap。
1. 连接redis数据库
Redis连接工厂会生成Redis数据库服务器的连接。Spring 为Redis客户端实现了连接工厂:
- JedisConnectionFactroy
- JrddisConnectionFactroy
- lettuceConnectionFavtroy
- SrpConnectionFactroy
具体使用哪一个取决于你。四种连接方式没有太大的不同。
//取得redis数据服务器连接工厂
@Bean
public RedisConnectionFactroy rediscf(){
JedisConnectionFactroy cf = new JedisConnectionFactroy();
cf.setHostName("redis-server");//默认是本地localhost
cf.setPort("7379");//默认是6379端口
cf。setPassword("password");//默认没有密码
return cf;
}
2. 使用RedisTemplate操作数据库
//使用RedisConnection保存一个数据
RedisConnectionFactroy cf = new RedisConnectionFactroy();
RedisConnection conn = cf.getConnection();
conn.set(key , value);//设置保存数据
conn.get(key);//取出数据
以上只是给出了操作简单条目的redis,下面列表中给出不同item redis的操作
方法 | 子API接口 | 描述 |
---|---|---|
opsForValue() | ValueOperataions | 操作简单类型 |
opsForList() | ListOperataions | 操作List列表 |
opsForSet() | SetOperataions | 操作set集合 |
opsForZSet() | ZSetOperataions | 操作有序set集合 |
opsForHash() | HashOperataions | 操作hash值 |
boundValueOps(K) | BoundValueOperataions | 已绑定key的方式朝族 |
boundListOps(K) | BoundListOperataions | 已绑定key的方式朝族 |
boundSetOps(K) | BoundSetOperataions | 已绑定key的方式朝族 |
boundZSetOps(K) | BoundZSetOperataions | 已绑定key的方式朝族 |
boundHashOps(K) | BoundHashOperataions | 已绑定key的方式朝族 |
假如当使用RedisTemplate的时候,我们希望将Product类型的value序列化为JSON,而key是String类型。RedisTemplate的setKeySerializer()和setValueSerialiser()方法就需要这样做:
@Bean
public RedisTemplate<String , Product> redisTemplate(RedisConnectionFactroy cf){
RedisTemplate<String , Product> redis = new RedisTemplate<String , Product>();
redis.setConnectionFactroy(cf);
redis.setKeySerializer(new StringRedisSerializer());
redis.setValueSerializer(new Jackson2RedisSerializer<Product>(Product.class));
return redis;
}