redis操作
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

71 lines
996 B

package redis
import (
"strconv"
"testing"
// "time"
)
var succ []int
func Test_Watch(t *testing.T) {
var key string = "tttttt"
// var tx *Tx
var count int
for i := 0; i < 100000; i++ {
// t.Log(i)
go func(i int) {
// t.Log(i)
tx, err := NewTx()
// t.Log(tx, err)
if err == nil {
reply, err := tx.Watch(key)
// t.Log("watch:", reply, err)
count_str, err := Get(key)
count, _ = strconv.Atoi(count_str)
// t.Log("count:", count, err)
reply, err = tx.Multi()
// t.Log("Multi:", reply, err)
if count > 0 && err == nil {
// t.Log("start decr,", i)
reply, err = tx.Decr(key)
// t.Log("Decr:", reply, err)
reply, err = tx.Exec()
// t.Log("Exec:", exec_reply, err, i)
if err == nil && reply != nil {
// reply, err = HSet("succ", i, i)
succ = append(succ, i)
t.Log("succ:", i, succ)
}
}
err = tx.Close()
// t.Log("Close:", err)
}
}(i)
}
t.Log(succ)
}