Guest User

Untitled

a guest
Oct 16th, 2018
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.89 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4. "fmt"
  5.  
  6. "github.com/garyburd/redigo/redis"
  7. )
  8.  
  9. var pools []*redis.Pool
  10.  
  11. func main() {
  12. readServers := []string{
  13. "my-redis-server1:6379",
  14. "my-redis-server2:6379",
  15. }
  16.  
  17. for _, s := range readServers {
  18. pools = append(pools, &redis.Pool{
  19. MaxIdle: 5,
  20. Dial: func() (redis.Conn, error) {
  21. fmt.Printf("server: %sn", s)
  22. c, err := redis.Dial("tcp", s)
  23. if err != nil {
  24. panic(err.Error())
  25. }
  26. return c, err
  27. },
  28. })
  29. }
  30.  
  31. for i, p := range pools {
  32. c := p.Get()
  33. defer c.Close()
  34.  
  35. res, err := redis.String(c.Do("GET", "key"))
  36. fmt.Printf("pools[%d] res: %s, err: %sn", i, res, err)
  37. }
  38. }
  39.  
  40. server: my-redis-server1:6379
  41. pools[0] res: , err: redigo: nil returned
  42. server: my-redis-server2:6379
  43. pools[1] res: value, err: %!s(<nil>)
  44.  
  45. server: my-redis-server2:6379
  46. pools[0] res: value, err: %!s(<nil>)
  47. server: my-redis-server2:6379
  48. pools[1] res: value, err: %!s(<nil>)
  49.  
  50. package main
  51.  
  52. import (
  53. "fmt"
  54.  
  55. "github.com/garyburd/redigo/redis"
  56. )
  57.  
  58. var pools []*redis.Pool
  59.  
  60. func newPool(svr string) *redis.Pool {
  61. return &redis.Pool{
  62. MaxIdle: 5,
  63. Dial: func() (redis.Conn, error) {
  64. fmt.Printf("server: %sn", svr)
  65. c, err := redis.Dial("tcp", svr)
  66. if err != nil {
  67. panic(err.Error())
  68. }
  69. return c, err
  70. },
  71. }
  72. }
  73.  
  74. func main() {
  75. readServers := []string{
  76. "my-redis-server1:6379",
  77. "my-redis-server2:6379",
  78. }
  79.  
  80. for _, s := range readServers {
  81. pools = append(pools, newPool(s))
  82. }
  83.  
  84. for i, p := range pools {
  85. c := p.Get()
  86. defer c.Close()
  87.  
  88. res, err := redis.String(c.Do("GET", "key"))
  89. fmt.Printf("pools[%d] res: %s, err: %sn", i, res, err)
  90. }
  91. }
Add Comment
Please, Sign In to add comment