package com.jshoperx.redis.dao.impl;
import com.jshoperx.redis.dao.RedisBaseTDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.concurrent.TimeUnit;
@Repository("redisBaseTDao")
public class RedisBaseTDaoImpl<T> implements RedisBaseTDao<T> {
@Autowired
private RedisTemplate<String, T> redisTemplate;
@Override
public void put(String key, final T t, Class<T> cls) {
redisTemplate.opsForHash().put(cls.getName(), key, t);
}
@Override
public T get(String key, Class<T> cls) {
return (T) redisTemplate.opsForHash().get(cls.getName(), key);
}
@Override
public void put(String key, T t, Class<T> cls, long timeout,TimeUnit timeUnit) {
redisTemplate.opsForHash().put(cls.getName(), key, t);
redisTemplate.expire(key, timeout, timeUnit);
}
@Override
public void delete(String key) {
redisTemplate.delete(key);
}
@Override
public void delete(List<String> keys) {
redisTemplate.delete(keys);
}
}