redis.go 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. package service
  2. import (
  3. "encoding/json"
  4. "time"
  5. "newaterobot-process/utils"
  6. )
  7. // RedisService Redis服务
  8. type RedisService struct {
  9. redisUtil *utils.RedisUtil
  10. }
  11. var redisService = new(RedisService)
  12. // NewRedisService 创建Redis服务实例
  13. func NewRedisService() *RedisService {
  14. return &RedisService{
  15. redisUtil: utils.GetRedisUtil(),
  16. }
  17. }
  18. // GetRedisService 获取Redis服务实例
  19. func GetRedisService() *RedisService {
  20. return redisService
  21. }
  22. // SetString 设置字符串值
  23. func (r *RedisService) SetString(key, value string, expiration time.Duration) error {
  24. return r.redisUtil.SetString(key, value, expiration)
  25. }
  26. // GetString 获取字符串值
  27. func (r *RedisService) GetString(key string) (string, error) {
  28. return r.redisUtil.GetString(key)
  29. }
  30. // SetObject 设置对象值
  31. func (r *RedisService) SetObject(key string, obj interface{}, expiration time.Duration) error {
  32. return r.redisUtil.SetObject(key, obj, expiration)
  33. }
  34. // GetObject 获取对象值
  35. func (r *RedisService) GetObject(key string, obj interface{}) error {
  36. return r.redisUtil.GetObject(key, obj)
  37. }
  38. // Exists 检查键是否存在
  39. func (r *RedisService) Exists(key string) (bool, error) {
  40. return r.redisUtil.Exists(key)
  41. }
  42. // Del 删除键
  43. func (r *RedisService) Del(key string) error {
  44. return r.redisUtil.Del(key)
  45. }
  46. // SetExpire 设置带过期时间的键值对
  47. func (r *RedisService) SetExpire(key string, value interface{}, expiration time.Duration) error {
  48. return r.redisUtil.SetExpire(key, value, expiration)
  49. }
  50. // GetAndDecode 获取并解码JSON对象
  51. func (r *RedisService) GetAndDecode(key string, dest interface{}) error {
  52. data, err := r.redisUtil.GetString(key)
  53. if err != nil {
  54. return err
  55. }
  56. return json.Unmarshal([]byte(data), dest)
  57. }
  58. // Increment 增加计数器
  59. func (r *RedisService) Increment(key string) error {
  60. return utils.GetRedisUtil().SetExpire(key, 1, time.Hour)
  61. }