単純な追加、削除、変更、クエリの場合は、どのクラスをシリアル化および逆シリアル化する必要があるのか、キーのプレフィックスが何なのかを教えていただくだけで済みますね。それで十分ですか?有効期限については、今回は無視して問題ありません。有効期限を追加する必要がある場合は、それほど難しいことではありません。その後、しばらく考えて、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. このように書くことのデメリットを考える このように書くとコード量が減り、望む利便性が実現できるのですが、常に何かがおかしいと感じ、動作がおかしいように感じます。もう少し刺激的になってください。もしあなたがそのようなアイデアを思いつくことができたら、おめでとうございます。あなたはさらにコードを追求していることになります。これまでにクラスを 2 回作成し、Redis のプレフィックスが何であるかを示す定数を作成しました。 Spring を使用するときは、通常、基礎となるフレームワークにこれらのことを伝えず、アノテーションを使用します。したがって、
Redis リポジトリがステージに登場します。
以上がユニバーサル Redis の追加、削除、変更、クエリ スクリプトを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。