valkeyrie icon indicating copy to clipboard operation
valkeyrie copied to clipboard

bug Redis multi-node can acquire lock success

Open tx991020 opened this issue 3 years ago • 0 comments

node1

client, err := valkeyrie.NewStore(store.REDIS, []string{"localhost:6379"}, &store.Config{
	
	})
	if err != nil {
		panic(err)
	}

	lock, err := client.NewLock("lock2", &store.LockOptions{
		Value:          []byte("node"),
		TTL:            time.Second * 20,
		DeleteOnUnlock: true,
	})
	if err != nil {
		panic(err)
	}
	i, err := lock.Lock(nil)
	if err != nil {
		panic(err)
	}
	for {
		select {
		case <-i:
			fmt.Println("lock success")
			time.Sleep(time.Second * 2)
		}
	}

node2

client, err := valkeyrie.NewStore(store.REDIS, []string{"localhost:6379"}, &store.Config{
	
	})
	if err != nil {
		panic(err)
	}

	lock, err := client.NewLock("lock2", &store.LockOptions{
		Value:          []byte("node"),
		TTL:            time.Second * 20,
		DeleteOnUnlock: true,
	})
	if err != nil {
		panic(err)
	}
	i, err := lock.Lock(nil)
	if err != nil {
		panic(err)
	}
	for {
		select {
		case <-i:
			fmt.Println("lock success")
			time.Sleep(time.Second * 2)
		}
	}

tx991020 avatar Jul 22 '22 08:07 tx991020