1、减仓后减仓
This commit is contained in:
@ -573,6 +573,33 @@ func (r *RedisHelper) HKeys(key string) ([]string, error) {
|
||||
return fields, nil
|
||||
}
|
||||
|
||||
func (r *RedisHelper) HExists(key, field, value string) (bool, error) {
|
||||
exists, err := r.client.HExists(r.ctx, key, field).Result()
|
||||
if err != nil {
|
||||
return false, fmt.Errorf("check existence failed: %v", err)
|
||||
}
|
||||
if !exists {
|
||||
return false, nil
|
||||
}
|
||||
|
||||
storedValue, err := r.client.HGet(r.ctx, key, field).Result()
|
||||
if err != nil {
|
||||
return false, fmt.Errorf("get value failed: %v", err)
|
||||
}
|
||||
|
||||
// 如果值是 JSON,比较前反序列化
|
||||
var storedObj, inputObj interface{}
|
||||
if err := sonic.UnmarshalString(storedValue, &storedObj); err != nil {
|
||||
return false, fmt.Errorf("unmarshal stored value failed: %v", err)
|
||||
}
|
||||
if err := sonic.UnmarshalString(value, &inputObj); err != nil {
|
||||
return false, fmt.Errorf("unmarshal input value failed: %v", err)
|
||||
}
|
||||
|
||||
// 比较两个对象(需要根据实际类型调整)
|
||||
return fmt.Sprintf("%v", storedObj) == fmt.Sprintf("%v", inputObj), nil
|
||||
}
|
||||
|
||||
// DelSet 从集合中删除元素
|
||||
func (r *RedisHelper) DelSet(key string, value string) error {
|
||||
_, err := r.client.SRem(r.ctx, key, value).Result()
|
||||
|
||||
Reference in New Issue
Block a user