package cn.superdesk.uniorder.common.mq.redis.service;

import cn.superdesk.uniorder.common.mq.redis.constants.RedisKeyPrefix;

import java.util.Map;

/**
 * @Description: 计划弃用 或 改造
 * 基本操作 @link RedisUtil
 * 业务操作 @link RedisManager
 * @Author: linjinyu
 * @CreateDate: 2021/10/27 下午3:08
 * @UpdateUser: linjinyu
 * @UpdateDate: 2021/10/27 下午3:08
 * @UpdateRemark: 修改内容
 * @Version: 1.0
 */
@Deprecated
public interface RedisService {

	default String getCacheKey(RedisKeyPrefix keyPrefix, String key) {
		return keyPrefix.getKey() + ":" + key;
	}

	/**
	 * 动态切换
	 *
	 * @param dbIndex
	 */
	void setDatabase(Integer dbIndex);

	/**
	 * info
	 *
	 * @param partStr
	 */
	void getRedisInfo(String partStr);

	/**
	 * 功能说明:将对象保存到redis里(单位秒)
	 *
	 * @param value
	 * @param keyPrefix key前缀
	 * @param key       key后缀
	 * @param time      时间(单位秒)
	 * @createTime 2018年4月9日 下午5:25:56
	 */
	void saveObject(String value, RedisKeyPrefix keyPrefix, String key, long time);


	/**
	 * save hash value in redis (if time <= 0, not expired time)
	 *
	 * @param mapValue
	 * @param keyPrefix
	 * @param key
	 * @param time
	 */
	void hashSave(Map<String, String> mapValue, RedisKeyPrefix keyPrefix, String key, long time);

	/**
	 * 将哈希表 key 中的域 field 的值设为 value 。
	 *
	 * @param redisKey
	 * @param key
	 * @param value
	 */
	void hashSet(String redisKey, String key, String value);

	/**
	 * 为哈希表 key 中的域 field 的值加上增量 increment 。
	 *
	 * @param redisKey
	 * @param key
	 * @param value
	 * @return
	 */
	long hashIncrementBy(String redisKey, String key, int value);

	/**
	 * 功能说明:通过key获取保存到redis里的值
	 *
	 * @param keyPrefix key前缀
	 * @param key       key后缀
	 * @return
	 * @createTime 2018年4月9日 下午5:26:51
	 */
	Object getKey(RedisKeyPrefix keyPrefix, String key);

	/**
	 * 返回redis 哈希表 key 中给定域 field 的值
	 *
	 * @param redisKey
	 * @param hashKey
	 * @return
	 */
	Object hashGetByKey(String redisKey, String hashKey);

	String[] haskKeys(String redisKey);


	/**
	 * 功能说明:通过key删除redis里面的值
	 *
	 * @param keyPrefix key前缀
	 * @param key       key后缀
	 * @createTime 2018年4月9日 下午5:27:14
	 */
	void deleteKey(RedisKeyPrefix keyPrefix, String key);
}
