Ejemplo n.º 1
0
        /// <summary>
        /// 分布式锁
        /// </summary>
        /// <param name="serviceName"></param>
        /// <param name="ipPort"></param>
        /// <param name="passwords"></param>
        /// <param name="type"></param>
        /// <param name="key"></param>
        /// <param name="timeout"></param>
        /// <param name="rolling"></param>
        public RedisLocker(string serviceName, string ipPort, string passwords, RedisConnectType type, string key, int timeout = 30 * 1000, int rolling = 50)
        {
            _redisHelper = RedisHelperBuilder.Build(serviceName, ipPort, passwords, type);

            if (!_redisHelper.GetRedisOperation().Lock(key, timeout, rolling))
            {
                throw new Exception("RedisLocker申请锁已超时!");
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 初始化
        /// </summary>
        /// <param name="sectionName"></param>
        /// <param name="type"></param>
        /// <param name="master"></param>
        /// <param name="password"></param>
        /// <param name="serviceName"></param>
        public void Init(string sectionName, RedisConnectType type, string master, string password = "", string serviceName = "")
        {
            var redisConfig = new RedisConfig()
            {
                SectionName = sectionName,
                Type        = type,
                Masters     = master
            };

            if (!string.IsNullOrEmpty(serviceName))
            {
                redisConfig.ServiceName = serviceName;
            }
            if (!string.IsNullOrEmpty(password))
            {
                redisConfig.Password = password;
            }
            this.Init(redisConfig);
        }
Ejemplo n.º 3
0
 /// <summary>
 /// 初始化
 /// </summary>
 /// <param name="sectionName"></param>
 /// <param name="type"></param>
 /// <param name="master"></param>
 /// <param name="password"></param>
 /// <param name="serviceName"></param>
 /// <param name="poolSize"></param>
 /// <param name="busyRetry"></param>
 /// <param name="busyRetryWaitMS"></param>
 internal void Init(string sectionName, RedisConnectType type, string master, string password = "", string serviceName = "", int poolSize = 1, int busyRetry = 10, int busyRetryWaitMS = 1000)
 {
     _redisHelper.Init(sectionName, type, master, password, serviceName);
 }
Ejemplo n.º 4
0
 /// <summary>
 /// 自定义初始化
 /// </summary>
 /// <param name="name"></param>
 /// <param name="ipPort"></param>
 /// <param name="passwords"></param>
 /// <param name="type"></param>
 internal void Init(string name, string ipPort, string passwords, RedisConnectType type = RedisConnectType.Instance)
 {
     _redisHelper.Init(name, type, ipPort, passwords);
 }
Ejemplo n.º 5
0
        /// <summary>
        /// 自定义指定配置连接
        /// </summary>
        /// <param name="name">这个并非是配置节点名,而是逻辑名</param>
        /// <param name="ipPort"></param>
        /// <param name="passwords"></param>
        /// <param name="type"></param>
        /// <returns></returns>
        public static RedisHelper Build(string name, string ipPort, string passwords, RedisConnectType type = 0)
        {
            var redisHelper = new RedisHelper();

            redisHelper.CreateInstance(_instance);
            redisHelper.Init(name, ipPort, passwords, type);
            return(redisHelper);
        }