Skip to content

Commit 1ae5806

Browse files
author
andyli
committed
use SCAN replace KEYS
1 parent 324a8d2 commit 1ae5806

File tree

1 file changed

+18
-3
lines changed

1 file changed

+18
-3
lines changed

cache/redis_store.go

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,9 +67,24 @@ func (s *RedisStore) Forget(key string) error {
6767
func (s *RedisStore) Flush() error {
6868
c := s.pool.Get()
6969
defer c.Close()
70-
keys, err := redis.Strings(c.Do("KEYS", s.prefix+"*"))
71-
if err != nil {
72-
return err
70+
71+
var err error
72+
iter := 0
73+
keys := []string{}
74+
75+
for {
76+
arr, err := redis.Values(c.Do("SCAN", iter, "MATCH", s.prefix+"*"))
77+
if err != nil {
78+
return err
79+
}
80+
81+
iter, _ = redis.Int(arr[0], nil)
82+
k, _ := redis.Strings(arr[1], nil)
83+
keys = append(keys, k...)
84+
85+
if iter == 0 {
86+
break
87+
}
7388
}
7489
for _, key := range keys {
7590
if _, err = c.Do("DEL", key); err != nil {

0 commit comments

Comments
 (0)