Merge pull request #1899 from alexus1024/master

Add support for BLMove command
This commit is contained in:
Vladimir Mihailenco 2021-09-23 16:26:55 +03:00 committed by GitHub
commit 8648971b29
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 29 additions and 0 deletions

View File

@ -195,6 +195,7 @@ type Cmdable interface {
RPush(ctx context.Context, key string, values ...interface{}) *IntCmd RPush(ctx context.Context, key string, values ...interface{}) *IntCmd
RPushX(ctx context.Context, key string, values ...interface{}) *IntCmd RPushX(ctx context.Context, key string, values ...interface{}) *IntCmd
LMove(ctx context.Context, source, destination, srcpos, destpos string) *StringCmd LMove(ctx context.Context, source, destination, srcpos, destpos string) *StringCmd
BLMove(ctx context.Context, source, destination, srcpos, destpos string, timeout time.Duration) *StringCmd
SAdd(ctx context.Context, key string, members ...interface{}) *IntCmd SAdd(ctx context.Context, key string, members ...interface{}) *IntCmd
SCard(ctx context.Context, key string) *IntCmd SCard(ctx context.Context, key string) *IntCmd
@ -1494,6 +1495,13 @@ func (c cmdable) LMove(ctx context.Context, source, destination, srcpos, destpos
return cmd return cmd
} }
func (c cmdable) BLMove(ctx context.Context, source, destination, srcpos, destpos string, timeout time.Duration) *StringCmd {
cmd := NewStringCmd(ctx, "blmove", source, destination, srcpos, destpos, formatSec(ctx, timeout))
cmd.setReadTimeout(timeout)
_ = c(ctx, cmd)
return cmd
}
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
func (c cmdable) SAdd(ctx context.Context, key string, members ...interface{}) *IntCmd { func (c cmdable) SAdd(ctx context.Context, key string, members ...interface{}) *IntCmd {

View File

@ -2372,6 +2372,27 @@ var _ = Describe("Commands", func() {
Expect(lRange.Err()).NotTo(HaveOccurred()) Expect(lRange.Err()).NotTo(HaveOccurred())
Expect(lRange.Val()).To(Equal([]string{"san"})) Expect(lRange.Val()).To(Equal([]string{"san"}))
}) })
It("should BLMove", func() {
rPush := client.RPush(ctx, "blmove1", "ichi")
Expect(rPush.Err()).NotTo(HaveOccurred())
Expect(rPush.Val()).To(Equal(int64(1)))
rPush = client.RPush(ctx, "blmove1", "ni")
Expect(rPush.Err()).NotTo(HaveOccurred())
Expect(rPush.Val()).To(Equal(int64(2)))
rPush = client.RPush(ctx, "blmove1", "san")
Expect(rPush.Err()).NotTo(HaveOccurred())
Expect(rPush.Val()).To(Equal(int64(3)))
blMove := client.BLMove(ctx, "blmove1", "lmove2", "RIGHT", "LEFT", time.Second)
Expect(blMove.Err()).NotTo(HaveOccurred())
Expect(blMove.Val()).To(Equal("san"))
lRange := client.LRange(ctx, "blmove2", 0, -1)
Expect(lRange.Err()).NotTo(HaveOccurred())
Expect(lRange.Val()).To(Equal([]string{"san"}))
})
}) })
Describe("sets", func() { Describe("sets", func() {