mirror of
https://github.com/redis/go-redis.git
synced 2025-04-17 20:17:02 +03:00
Merge branch 'master' into ndyakov/drop-ftprofile
This commit is contained in:
commit
4bdcb72e1b
2
.github/actions/run-tests/action.yml
vendored
2
.github/actions/run-tests/action.yml
vendored
@ -25,7 +25,7 @@ runs:
|
|||||||
|
|
||||||
# Mapping of redis version to redis testing containers
|
# Mapping of redis version to redis testing containers
|
||||||
declare -A redis_version_mapping=(
|
declare -A redis_version_mapping=(
|
||||||
["8.0-M05"]="8.0-M05-pre"
|
["8.0-RC1"]="8.0-RC1-pre"
|
||||||
["7.4.2"]="rs-7.4.0-v2"
|
["7.4.2"]="rs-7.4.0-v2"
|
||||||
["7.2.7"]="rs-7.2.0-v14"
|
["7.2.7"]="rs-7.2.0-v14"
|
||||||
)
|
)
|
||||||
|
6
.github/workflows/build.yml
vendored
6
.github/workflows/build.yml
vendored
@ -18,7 +18,7 @@ jobs:
|
|||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
redis-version:
|
redis-version:
|
||||||
- "8.0-M05" # 8.0 milestone 5
|
- "8.0-RC1" # 8.0 RC1
|
||||||
- "7.4.2" # should use redis stack 7.4
|
- "7.4.2" # should use redis stack 7.4
|
||||||
go-version:
|
go-version:
|
||||||
- "1.23.x"
|
- "1.23.x"
|
||||||
@ -43,7 +43,7 @@ jobs:
|
|||||||
|
|
||||||
# Mapping of redis version to redis testing containers
|
# Mapping of redis version to redis testing containers
|
||||||
declare -A redis_version_mapping=(
|
declare -A redis_version_mapping=(
|
||||||
["8.0-M05"]="8.0-M05-pre"
|
["8.0-RC1"]="8.0-RC1-pre"
|
||||||
["7.4.2"]="rs-7.4.0-v2"
|
["7.4.2"]="rs-7.4.0-v2"
|
||||||
)
|
)
|
||||||
if [[ -v redis_version_mapping[$REDIS_VERSION] ]]; then
|
if [[ -v redis_version_mapping[$REDIS_VERSION] ]]; then
|
||||||
@ -72,7 +72,7 @@ jobs:
|
|||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
redis-version:
|
redis-version:
|
||||||
- "8.0-M05" # 8.0 milestone 5
|
- "8.0-RC1" # 8.0 RC1
|
||||||
- "7.4.2" # should use redis stack 7.4
|
- "7.4.2" # should use redis stack 7.4
|
||||||
- "7.2.7" # should redis stack 7.2
|
- "7.2.7" # should redis stack 7.2
|
||||||
go-version:
|
go-version:
|
||||||
|
323
doctests/cmds_list_test.go
Normal file
323
doctests/cmds_list_test.go
Normal file
@ -0,0 +1,323 @@
|
|||||||
|
// EXAMPLE: cmds_list
|
||||||
|
// HIDE_START
|
||||||
|
package example_commands_test
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"fmt"
|
||||||
|
|
||||||
|
"github.com/redis/go-redis/v9"
|
||||||
|
)
|
||||||
|
|
||||||
|
// HIDE_END
|
||||||
|
|
||||||
|
func ExampleClient_cmd_llen() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
|
rdb := redis.NewClient(&redis.Options{
|
||||||
|
Addr: "localhost:6379",
|
||||||
|
Password: "", // no password docs
|
||||||
|
DB: 0, // use default DB
|
||||||
|
})
|
||||||
|
|
||||||
|
// REMOVE_START
|
||||||
|
rdb.Del(ctx, "mylist")
|
||||||
|
// REMOVE_END
|
||||||
|
|
||||||
|
// STEP_START llen
|
||||||
|
lPushResult1, err := rdb.LPush(ctx, "mylist", "World").Result()
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Println(lPushResult1) // >>> 1
|
||||||
|
|
||||||
|
lPushResult2, err := rdb.LPush(ctx, "mylist", "Hello").Result()
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Println(lPushResult2) // >>> 2
|
||||||
|
|
||||||
|
lLenResult, err := rdb.LLen(ctx, "mylist").Result()
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Println(lLenResult) // >>> 2
|
||||||
|
// STEP_END
|
||||||
|
|
||||||
|
// Output:
|
||||||
|
// 1
|
||||||
|
// 2
|
||||||
|
// 2
|
||||||
|
}
|
||||||
|
func ExampleClient_cmd_lpop() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
|
rdb := redis.NewClient(&redis.Options{
|
||||||
|
Addr: "localhost:6379",
|
||||||
|
Password: "", // no password docs
|
||||||
|
DB: 0, // use default DB
|
||||||
|
})
|
||||||
|
|
||||||
|
// REMOVE_START
|
||||||
|
rdb.Del(ctx, "mylist")
|
||||||
|
// REMOVE_END
|
||||||
|
|
||||||
|
// STEP_START lpop
|
||||||
|
RPushResult, err := rdb.RPush(ctx,
|
||||||
|
"mylist", "one", "two", "three", "four", "five",
|
||||||
|
).Result()
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Println(RPushResult) // >>> 5
|
||||||
|
|
||||||
|
lPopResult, err := rdb.LPop(ctx, "mylist").Result()
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Println(lPopResult) // >>> one
|
||||||
|
|
||||||
|
lPopCountResult, err := rdb.LPopCount(ctx, "mylist", 2).Result()
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Println(lPopCountResult) // >>> [two three]
|
||||||
|
|
||||||
|
lRangeResult, err := rdb.LRange(ctx, "mylist", 0, -1).Result()
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Println(lRangeResult) // >>> [four five]
|
||||||
|
// STEP_END
|
||||||
|
|
||||||
|
// Output:
|
||||||
|
// 5
|
||||||
|
// one
|
||||||
|
// [two three]
|
||||||
|
// [four five]
|
||||||
|
}
|
||||||
|
|
||||||
|
func ExampleClient_cmd_lpush() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
|
rdb := redis.NewClient(&redis.Options{
|
||||||
|
Addr: "localhost:6379",
|
||||||
|
Password: "", // no password docs
|
||||||
|
DB: 0, // use default DB
|
||||||
|
})
|
||||||
|
|
||||||
|
// REMOVE_START
|
||||||
|
rdb.Del(ctx, "mylist")
|
||||||
|
// REMOVE_END
|
||||||
|
|
||||||
|
// STEP_START lpush
|
||||||
|
lPushResult1, err := rdb.LPush(ctx, "mylist", "World").Result()
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Println(lPushResult1) // >>> 1
|
||||||
|
|
||||||
|
lPushResult2, err := rdb.LPush(ctx, "mylist", "Hello").Result()
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Println(lPushResult2) // >>> 2
|
||||||
|
|
||||||
|
lRangeResult, err := rdb.LRange(ctx, "mylist", 0, -1).Result()
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Println(lRangeResult) // >>> [Hello World]
|
||||||
|
// STEP_END
|
||||||
|
|
||||||
|
// Output:
|
||||||
|
// 1
|
||||||
|
// 2
|
||||||
|
// [Hello World]
|
||||||
|
}
|
||||||
|
|
||||||
|
func ExampleClient_cmd_lrange() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
|
rdb := redis.NewClient(&redis.Options{
|
||||||
|
Addr: "localhost:6379",
|
||||||
|
Password: "", // no password docs
|
||||||
|
DB: 0, // use default DB
|
||||||
|
})
|
||||||
|
|
||||||
|
// REMOVE_START
|
||||||
|
rdb.Del(ctx, "mylist")
|
||||||
|
// REMOVE_END
|
||||||
|
|
||||||
|
// STEP_START lrange
|
||||||
|
RPushResult, err := rdb.RPush(ctx, "mylist",
|
||||||
|
"one", "two", "three",
|
||||||
|
).Result()
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Println(RPushResult) // >>> 3
|
||||||
|
|
||||||
|
lRangeResult1, err := rdb.LRange(ctx, "mylist", 0, 0).Result()
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Println(lRangeResult1) // >>> [one]
|
||||||
|
|
||||||
|
lRangeResult2, err := rdb.LRange(ctx, "mylist", -3, 2).Result()
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Println(lRangeResult2) // >>> [one two three]
|
||||||
|
|
||||||
|
lRangeResult3, err := rdb.LRange(ctx, "mylist", -100, 100).Result()
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Println(lRangeResult3) // >>> [one two three]
|
||||||
|
|
||||||
|
lRangeResult4, err := rdb.LRange(ctx, "mylist", 5, 10).Result()
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Println(lRangeResult4) // >>> []
|
||||||
|
// STEP_END
|
||||||
|
|
||||||
|
// Output:
|
||||||
|
// 3
|
||||||
|
// [one]
|
||||||
|
// [one two three]
|
||||||
|
// [one two three]
|
||||||
|
// []
|
||||||
|
}
|
||||||
|
|
||||||
|
func ExampleClient_cmd_rpop() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
|
rdb := redis.NewClient(&redis.Options{
|
||||||
|
Addr: "localhost:6379",
|
||||||
|
Password: "", // no password docs
|
||||||
|
DB: 0, // use default DB
|
||||||
|
})
|
||||||
|
|
||||||
|
// REMOVE_START
|
||||||
|
rdb.Del(ctx, "mylist")
|
||||||
|
// REMOVE_END
|
||||||
|
|
||||||
|
// STEP_START rpop
|
||||||
|
rPushResult, err := rdb.RPush(ctx, "mylist",
|
||||||
|
"one", "two", "three", "four", "five",
|
||||||
|
).Result()
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Println(rPushResult) // >>> 5
|
||||||
|
|
||||||
|
rPopResult, err := rdb.RPop(ctx, "mylist").Result()
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Println(rPopResult) // >>> five
|
||||||
|
|
||||||
|
rPopCountResult, err := rdb.RPopCount(ctx, "mylist", 2).Result()
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Println(rPopCountResult) // >>> [four three]
|
||||||
|
|
||||||
|
lRangeResult, err := rdb.LRange(ctx, "mylist", 0, -1).Result()
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Println(lRangeResult) // >>> [one two]
|
||||||
|
// STEP_END
|
||||||
|
|
||||||
|
// Output:
|
||||||
|
// 5
|
||||||
|
// five
|
||||||
|
// [four three]
|
||||||
|
// [one two]
|
||||||
|
}
|
||||||
|
|
||||||
|
func ExampleClient_cmd_rpush() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
|
rdb := redis.NewClient(&redis.Options{
|
||||||
|
Addr: "localhost:6379",
|
||||||
|
Password: "", // no password docs
|
||||||
|
DB: 0, // use default DB
|
||||||
|
})
|
||||||
|
|
||||||
|
// REMOVE_START
|
||||||
|
rdb.Del(ctx, "mylist")
|
||||||
|
// REMOVE_END
|
||||||
|
|
||||||
|
// STEP_START rpush
|
||||||
|
rPushResult1, err := rdb.RPush(ctx, "mylist", "Hello").Result()
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Println(rPushResult1) // >>> 1
|
||||||
|
|
||||||
|
rPushResult2, err := rdb.RPush(ctx, "mylist", "World").Result()
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Println(rPushResult2) // >>> 2
|
||||||
|
|
||||||
|
lRangeResult, err := rdb.LRange(ctx, "mylist", 0, -1).Result()
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Println(lRangeResult) // >>> [Hello World]
|
||||||
|
// STEP_END
|
||||||
|
|
||||||
|
// Output:
|
||||||
|
// 1
|
||||||
|
// 2
|
||||||
|
// [Hello World]
|
||||||
|
}
|
@ -432,7 +432,7 @@ func (c *PubSub) ReceiveTimeout(ctx context.Context, timeout time.Duration) (int
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
err = cn.WithReader(context.Background(), timeout, func(rd *proto.Reader) error {
|
err = cn.WithReader(ctx, timeout, func(rd *proto.Reader) error {
|
||||||
return c.cmd.readReply(rd)
|
return c.cmd.readReply(rd)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -381,7 +381,7 @@ var _ = Describe("RediSearch commands Resp 2", Label("search"), func() {
|
|||||||
// up until redis 8 the default scorer was TFIDF, in redis 8 it is BM25
|
// up until redis 8 the default scorer was TFIDF, in redis 8 it is BM25
|
||||||
// this test expect redis major version >= 8
|
// this test expect redis major version >= 8
|
||||||
It("should FTSearch WithScores", Label("search", "ftsearch"), func() {
|
It("should FTSearch WithScores", Label("search", "ftsearch"), func() {
|
||||||
SkipBeforeRedisVersion(7.9, "default scorer is not BM25")
|
SkipBeforeRedisVersion(7.9, "default scorer is not BM25STD")
|
||||||
|
|
||||||
text1 := &redis.FieldSchema{FieldName: "description", FieldType: redis.SearchFieldTypeText}
|
text1 := &redis.FieldSchema{FieldName: "description", FieldType: redis.SearchFieldTypeText}
|
||||||
val, err := client.FTCreate(ctx, "idx1", &redis.FTCreateOptions{}, text1).Result()
|
val, err := client.FTCreate(ctx, "idx1", &redis.FTCreateOptions{}, text1).Result()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user