단순한 추가, 삭제, 수정 및 쿼리용이라면 어떤 클래스를 직렬화 및 역직렬화해야 하는지 알려주고 키의 접두사가 무엇인지 알려주기만 하면 충분하지 않나요? 만료 시간에 대해서는 이번에는 무시해도 됩니다. 그러면 잠시 생각해 보고 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); } }4. 이렇게 작성할 때의 단점에 대해 생각해 보세요 그래도 이렇게 작성하면 코드가 절약되고 볼륨이 있으면 원하는 편리성을 얻을 수 있지만 항상 뭔가 잘못된 것 같은 느낌이 들고 조작이 좀 더 흥미진진해지는 것 같습니다. 이런, 당신이 그런 아이디어를 가질 수 있다면 축하합니다. 당신은 더 높은 수준의 코드를 추구하고 있습니다. 이제 클래스를 두 번 작성했으며 Redis의 접두사가 무엇인지 보여주기 위해 상수를 작성했습니다. Spring을 사용할 때 우리는 일반적으로 기본 프레임워크에 이러한 사항을 알리지 않습니다. 그리하여
무대에 오른다. Redis Repositories
위 내용은 범용 Redis 추가, 삭제, 수정 및 쿼리 스크립트를 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!