Redisの中で発生する問題
/ ** *为指定KEY设置一覧值 * @paramのキー * @paramのリスト * @return * / パブリック ブール setListByKey(文字列のキー、リスト<?> リスト、ロングは有効期限が切れる){ 場合(ヌル == キー){ 返す 偽; } redisTemplate.opsForList()rightPushAll(キーリスト)。 返すredisTemplate.expire(キー、有効期限が切れ、TimeUnit.SECONDSを)。 }
redisTemplate.opsForListは()。RightPushAll(キー、一覧)前記
rightPushAllはrightPushAll(Kキー、コレクション<V必要 >値)を、 実際には、メソッドのrightPushAll(Kキー、V ...の値を呼び出す前に、
公衆ロングrightPushAll(Kキー、V ...の値){ 最終 バイト [] rawKey = rawKey(キー)。 最終 バイト [] [] rawValuesの=のrawValues(値)。 戻り実行(新しい RedisCallback <ロング> (){ パブリックロングdoInRedis(RedisConnection接続){ 戻りconnection.rPush(rawKey、rawValues); } }、真)。 } @Override パブリックロングrightPushAll(Kキー、コレクション<V> の値){ 最終 バイト [] rawKey = rawKey(キー)。 最後の バイト [] [] rawValuesの=のrawValues(値)。 戻り実行(新しい RedisCallback <ロング> (){ パブリックロングdoInRedis(RedisConnection接続){ 戻りconnection.rPush(rawKey、rawValues); } }、真)。 }
ソリューション
のパラメータを変更することを余儀なく
パブリック ブール setListByKey(<?>文字列のキー、リスト{リスト、ロングの有効期限が切れた) 場合(ヌル == キー){ 返す 偽。 } redisTemplate.opsForList()rightPushAll(キー、(コレクション)リスト)。 返すredisTemplate.expire(キー、有効期限が切れ、TimeUnit.SECONDSを)。 }