forked from mirror/redis
Merge pull request #1899 from alexus1024/master
Add support for BLMove command
This commit is contained in:
commit
8648971b29
|
@ -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 {
|
||||||
|
|
|
@ -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() {
|
||||||
|
|
Loading…
Reference in New Issue