redis的值的数据结构可以是队列,并且可以操作头部或者尾部,用法如下:

package mainimport ( "fmt" "github.com/go-redis/redis")func main() { client := redis.NewClient(&redis.Options{ Addr: "127.0.0.1:6380", Password: "", DB: 0, }) var reply int64 var err error reply, err = client.LPush("key", "value1", "value2", "value3").Result() fmt.Printf("reply=%d err_lpush=%v\n", reply, err) reply, err = client.RPush("key", "value4", "value5", "value6").Result() fmt.Printf("reply=%d err_rpush=%v\n", reply, err) var values []string values, err = client.LRange("key", 0 , -1).Result() fmt.Printf("values=%v err_lrange=%v\n", values, err) var elem string elem, err = client.LPop("key").Result() fmt.Printf("reply=%s err_lpop=%v\n", elem, err) elem, err = client.RPop("key").Result() fmt.Printf("reply=%s err_rpop=%v\n", elem, err) values, err = client.LRange("key", 0 , -1).Result() fmt.Printf("values=%v err_lrange=%v\n", values, err)}

输出:

reply=3 err_lpush=<nil>reply=6 err_rpush=<nil>values=[value3 value2 value1 value4 value5 value6] err_lrange=<nil>reply=value3 err_lpop=<nil>reply=value6 err_rpop=<nil>values=[value2 value1 value4 value5] err_lrange=<nil>