redis.go 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. package config
  2. import (
  3. "context"
  4. "fmt"
  5. "github.com/sirupsen/logrus"
  6. "gogs.daxia.dev/huanan/pkg.daxia.dev.git/parse"
  7. "gogs.daxia.dev/huanan/pkg.daxia.dev.git/rdb"
  8. )
  9. var Prefix = ""
  10. func InitPrefix(prefix string) {
  11. Prefix = prefix
  12. }
  13. func GetString(key string, defaultVal string) string {
  14. if Prefix == "" {
  15. logrus.Fatal("prefix没设置")
  16. }
  17. key = Prefix + key
  18. data, err := rdb.GetRDB().Get(context.Background(), key).Result()
  19. if err != nil {
  20. logrus.Error(err)
  21. return defaultVal
  22. }
  23. return data
  24. }
  25. func GetInt(key string, defaultVal int) int {
  26. if Prefix == "" {
  27. logrus.Fatal("prefix没设置")
  28. }
  29. key = Prefix + key
  30. data, err := rdb.GetRDB().Get(context.Background(), key).Result()
  31. if err != nil {
  32. logrus.Error(err)
  33. return defaultVal
  34. }
  35. return parse.StringToInt(data)
  36. }
  37. func GetInt64(key string, defaultVal int64) int64 {
  38. if Prefix == "" {
  39. logrus.Fatal("prefix没设置")
  40. }
  41. key = Prefix + key
  42. data, err := rdb.GetRDB().Get(context.Background(), key).Result()
  43. if err != nil {
  44. logrus.Error(err)
  45. return defaultVal
  46. }
  47. return parse.StringToInt64(data)
  48. }
  49. func SetInt(key string, val int) error {
  50. return SetString(key, fmt.Sprintf("%d", val))
  51. }
  52. func SetString(key string, val string) error {
  53. if Prefix == "" {
  54. logrus.Fatal("prefix没设置")
  55. }
  56. key = Prefix + key
  57. _, err := rdb.GetRDB().Set(context.Background(), key, val, 0).Result()
  58. if err != nil {
  59. logrus.Error(err)
  60. return err
  61. }
  62. return nil
  63. }
  64. func ListAll() (map[string]string, error) {
  65. if Prefix == "" {
  66. logrus.Fatal("prefix没设置")
  67. }
  68. var err error
  69. resultMap := map[string]string{}
  70. var cursor uint64
  71. for {
  72. var keys []string
  73. keys, cursor, err = rdb.GetRDB().Scan(context.Background(), cursor, Prefix+"*", 0).Result()
  74. if err != nil {
  75. logrus.Error(err)
  76. return nil, err
  77. }
  78. for _, key := range keys {
  79. //fmt.Println("key", key)
  80. data, err := rdb.GetRDB().Get(context.Background(), key).Result()
  81. if err != nil {
  82. logrus.Error(err)
  83. return nil, err
  84. }
  85. resultMap[key] = data
  86. }
  87. // 没有更多key了
  88. if cursor == 0 {
  89. break
  90. }
  91. }
  92. return resultMap, nil
  93. }