var _ = Describe("Pipelining", func() { var client *redis.Client BeforeEach(func() { client = redis.NewClient(&redis.Options{ Addr: redisAddr, }) }) AfterEach(func() { Expect(client.FlushDb().Err()).NotTo(HaveOccurred()) Expect(client.Close()).NotTo(HaveOccurred()) }) It("should pipeline", func() { set := client.Set("key2", "hello2", 0) Expect(set.Err()).NotTo(HaveOccurred()) Expect(set.Val()).To(Equal("OK")) pipeline := client.Pipeline() set = pipeline.Set("key1", "hello1", 0) get := pipeline.Get("key2") incr := pipeline.Incr("key3") getNil := pipeline.Get("key4") cmds, err := pipeline.Exec() Expect(err).To(Equal(redis.Nil)) Expect(cmds).To(HaveLen(4)) Expect(pipeline.Close()).NotTo(HaveOccurred()) Expect(set.Err()).NotTo(HaveOccurred())
var _ = Describe("Command", func() { var client *redis.Client BeforeEach(func() { client = redis.NewClient(&redis.Options{ Addr: redisAddr, }) }) AfterEach(func() { Expect(client.FlushDb().Err()).NotTo(HaveOccurred()) Expect(client.Close()).NotTo(HaveOccurred()) }) It("should implement Stringer", func() { set := client.Set("foo", "bar", 0) Expect(set.String()).To(Equal("SET foo bar: OK")) get := client.Get("foo") Expect(get.String()).To(Equal("GET foo: bar")) }) It("should have correct val/err states", func() { set := client.Set("key", "hello", 0) Expect(set.Err()).NotTo(HaveOccurred()) Expect(set.Val()).To(Equal("OK")) get := client.Get("key") Expect(get.Err()).NotTo(HaveOccurred()) Expect(get.Val()).To(Equal("hello"))
var client *redis.Client BeforeEach(func() { client = redis.NewFailoverClient(&redis.FailoverOptions{ MasterName: sentinelName, SentinelAddrs: []string{":" + sentinelPort}, }) }) AfterEach(func() { Expect(client.Close()).NotTo(HaveOccurred()) }) It("should facilitate failover", func() { // Set value on master, verify err := client.Set("foo", "master", 0).Err() Expect(err).NotTo(HaveOccurred()) val, err := sentinelMaster.Get("foo").Result() Expect(err).NotTo(HaveOccurred()) Expect(val).To(Equal("master")) // Wait until replicated Eventually(func() string { return sentinelSlave1.Get("foo").Val() }, "1s", "100ms").Should(Equal("master")) Eventually(func() string { return sentinelSlave2.Get("foo").Val() }, "1s", "100ms").Should(Equal("master")) // Wait until slaves are picked up by sentinel.