1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
|
package redis_test
import (
"os"
"testing"
libredis "github.com/go-redis/redis"
"github.com/stretchr/testify/require"
"github.com/ulule/limiter/v3"
"github.com/ulule/limiter/v3/drivers/store/redis"
"github.com/ulule/limiter/v3/drivers/store/tests"
)
func TestRedisStoreSequentialAccess(t *testing.T) {
is := require.New(t)
client, err := newRedisClient()
is.NoError(err)
is.NotNil(client)
store, err := redis.NewStoreWithOptions(client, limiter.StoreOptions{
Prefix: "limiter:redis:sequential",
MaxRetry: 3,
})
is.NoError(err)
is.NotNil(store)
tests.TestStoreSequentialAccess(t, store)
}
func TestRedisStoreConcurrentAccess(t *testing.T) {
is := require.New(t)
client, err := newRedisClient()
is.NoError(err)
is.NotNil(client)
store, err := redis.NewStoreWithOptions(client, limiter.StoreOptions{
Prefix: "limiter:redis:concurrent",
MaxRetry: 7,
})
is.NoError(err)
is.NotNil(store)
tests.TestStoreConcurrentAccess(t, store)
}
func newRedisClient() (*libredis.Client, error) {
uri := "redis://localhost:6379/0"
if os.Getenv("REDIS_URI") != "" {
uri = os.Getenv("REDIS_URI")
}
opt, err := libredis.ParseURL(uri)
if err != nil {
return nil, err
}
client := libredis.NewClient(opt)
return client, nil
}
|