package io.renren.common.utils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.*; import org.springframework.data.redis.serializer.JdkSerializationRedisSerializer; import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.util.List; import java.util.Map; import java.util.concurrent.TimeUnit; /** * @program: ivvdata-security * @description: redis工具类 * @author: HYJ * @create: 2019-09-27 18:00 */ @Component public class RedisUtil { @Autowired private StringRedisTemplate stringRedisTemplate; @Resource private RedisTemplate<String, Object> redisTemplate; /** * 存储数据String类型 */ public void set(String key, String value){ ValueOperations<String, String> ops = stringRedisTemplate.opsForValue(); ops.set(key, value); } /** * 获取数据Stirng类型 */ public String get(String key){ ValueOperations<String, String> ops = stringRedisTemplate.opsForValue(); return ops.get(key); } /** * 存储数据 * @param key * @param value */ public void setObject(String key, Object value) { ValueOperations<String, Object> ops = redisTemplate.opsForValue(); ops.set(key, value); } /** * 获取数据 * @param key * @return */ public Object getObject(String key) { ValueOperations<String, Object> ops = redisTemplate.opsForValue(); return ops.get(key); } /** * 添加数据到list集合【操作List】 * @param key List名称 * @param value 存放的数值 * @return 存放完毕之后,当前List的长度 */ public Long leftPush(String key, String value) { ListOperations<String, Object> opsForList = redisTemplate.opsForList(); Long length = opsForList.leftPush(key,value); return length; } /** * 向List集合中存放集合 * @param key 被操作的List * @param list 需要添加的List * @return 存放完毕之后,当前List的长度 */ public Long leftPushAll(String key, List<Object> list) { ListOperations<String, Object> opsForList = redisTemplate.opsForList(); return opsForList.leftPushAll(key,list); } /** * 获取List集合中的数据 * @param key List名称 * @return list中存放的数据 */ public List<Object> range(String key) { ListOperations<String, Object> opsForList = redisTemplate.opsForList(); return opsForList.range(key, 0, -1); } /** * 移除List中的元素 * @param key 被操作的List * @param count 要删除的元素个数【为负数表示从尾部,向头部删除;正数则相反】 * @param value 要删除的元素值 * @return 移除完毕之后,当前List的长度 */ public Long remove(String key, long count, Object value) { ListOperations<String, Object> opsForList = redisTemplate.opsForList(); return opsForList.remove(key,count,value); } /** * 存储数据或修改数据 * * @param modelMap * @param mapName */ public void setKey(String mapName, Map<String, Object> modelMap) { HashOperations<String, String, Object> hps = redisTemplate.opsForHash(); hps.putAll(mapName, modelMap); } /** * 获取数据Map * * @param mapName * @return */ public Map<String, Object> getMapValue(String mapName) { HashOperations<String, String, Object> hps = this.redisTemplate.opsForHash(); return hps.entries(mapName); } /** * 获取数据value * * @param mapName * @param hashKey * @return */ public Object getValue(String mapName, String hashKey) { HashOperations<String, String, Object> hps = this.redisTemplate.opsForHash(); return hps.get(mapName, hashKey); } /** * 批量删除缓存数据 * * @param keys */ public void deleteData(List<String> keys) { // 执行批量删除操作时先序列化template redisTemplate.setKeySerializer(new JdkSerializationRedisSerializer()); redisTemplate.delete(keys); } /** * 设置超期时间 */ public boolean expire(String key, long expire){ Boolean expire2 = stringRedisTemplate.expire(key, expire, TimeUnit.SECONDS); return expire2; } /** * 删除String类型数据 */ public void remove(String key){ stringRedisTemplate.delete(key); }
/**
* 删除数据
*/
public void removex(String key) {
redisTemplate.delete(key);
}
/** * 自增操作 * @param delta 自增步长 */ public Long increment(String key, long delta){ return stringRedisTemplate.opsForValue().increment(key,delta); } }