版权声明:本文为作者原创,转载请注明出处。 https://blog.csdn.net/vop444/article/details/82961388
5中API
Redis 可以存储键与5种不同数据结构类型之间的映射,这5种数据结构类型分别为String(字符串)、List(列表)、Set(集合)、Hash(散列)和 Zset(有序集合)
redisTemplate.opsForValue();//操作字符串
redisTemplate.opsForHash();//操作hash
redisTemplate.opsForList();//操作list
redisTemplate.opsForSet();//操作set
redisTemplate.opsForZSet();//操作有序set
代码实例(大米粒儿积分)
引用redis
@Resource
private RedisTemplate redisTemplate;
ServiceImpl实现
package com.dmsdbj.integral.kernel.provider.service.impl;
import com.dmsdbj.cloud.tool.business.IntegralResult;
import com.dmsdbj.integral.kernel.entity.ext.FaceToFaceModel;
import com.dmsdbj.integral.kernel.provider.service.FaceToFaceService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Set;
import java.util.concurrent.TimeUnit;
/**
* Created by 刘竞博 on 2018.10.04.
*/
@Slf4j
@Service("faceToFaceService")
public class FaceToFaceServiceImpl implements FaceToFaceService {
@Resource
private RedisTemplate redisTemplate;
public IntegralResult findByKeyText(FaceToFaceModel faceToFaceModel) {
// 获取keytext值
String keyText = faceToFaceModel.getKeyText();
// 获取redis中数组长度
long size = redisTemplate.opsForZSet().size(keyText);
// 把当前对象add到redis中
redisTemplate.opsForZSet().add(keyText, faceToFaceModel, size + 1);
// 给redis设置过期时间
redisTemplate.expire(keyText, 60, TimeUnit.SECONDS);
// 使用ZSet()查询redis中所有数据
Set set =redisTemplate.opsForZSet().range(keyText, 0, -1);
return IntegralResult.build("0000", "查询成功", set);
}
}
拓展
StringRedisTemplate与RedisTemplate
两者的关系是StringRedisTemplate继承RedisTemplate。
两者的数据是不共通的;也就是说StringRedisTemplate只能管理StringRedisTemplate里面的数据,RedisTemplate只能管理RedisTemplate中的数据。
SDR默认采用的序列化策略有两种,一种是String的序列化策略,一种是JDK的序列化策略。
StringRedisTemplate默认采用的是String的序列化策略,保存的key和value都是采用此策略序列化保存的。
RedisTemplate默认采用的是JDK的序列化策略,保存的key和value都是采用此策略序列化保存的。