단순한 추가, 삭제, 수정 및 쿼리용이라면 어떤 클래스를 직렬화 및 역직렬화해야 하는지 알려주고 키의 접두사가 무엇인지 알려주기만 하면 충분하지 않나요? 만료 시간에 대해서는 이번에는 무시해도 됩니다. 그러면 잠시 생각해 보고 Java에서 제네릭을 사용하여 다음과 같은 기본 클래스를 얻습니다.
2. 기본 서비스 클래스public class BasicDataRedisService<T> { /** * Redis key prefix String * Redis中的key前缀 */ private String prefixString; private Class<T> targetClass; @Autowired private StringRedisTemplate redisTemplate; public BasicDataRedisService(String prefixString, Class targetClass) { this.prefixString = prefixString; this.targetClass = targetClass; } // -------------------------以下为内部使用--------------------------------- protected String generateKey(String id) { return prefixString + "id:" + id; } protected T getByKey(String key) { T result = ValueRedisUtil.getRedisObject(redisTemplate, key, targetClass); return result; } protected boolean setByKey(String key, Object object) { return ValueRedisUtil.setRedisObject(redisTemplate, key, object); } protected boolean deleteByKey(String key) { return ValueRedisUtil.delRedis(redisTemplate, key); } // -------------------------以下对外提供--------------------------------- /** * 根据id获取 * * @param id * @return */ public T getById(String id) { String key = generateKey(id); return getByKey(key); } /** * 根据id刷新 * * @param data * @param id * @return */ public boolean setByModel(Object data, String id) { String key = generateKey(id); return setByKey(key, data); } /** * 根据id删除 * * @param id * @return */ public boolean deleteById(String id) { String key = generateKey(id); return deleteByKey(key); } }
@Service public class UserRedisServiceImpl extends BasicDataRedisService<User> { private static String PREFIX = "henbao:user:"; public UserRedisServiceImpl() { super(PREFIX, User.class); } }
무대에 오른다. Redis Repositories
위 내용은 범용 Redis 추가, 삭제, 수정 및 쿼리 스크립트를 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!