1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/anytron-custom-redis

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

custom-redis

custom-redis предоставляет различные способы доступа к redis. Конкретные способы использования описаны ниже:

  1. Зависимость от конфигурационного файла:

    • classpath:/custom-redis.xml
  2. Использование кода:

    • cloudyCart — это имя приложения, подробности см. в разделе custom-redis.xml.
    • ICustomRedis — это оболочка для jedis, которая позволяет выполнять все методы redis.
   CustomRedisFactory f = CustomRedisFactory.getInstance();
   ICustomRedis redis1 = f.getCustomRedisByAppId("cloudyCart","");
   redis1.set("key1", "value001");
  1. Конфигурационный файл custom-redis.xml содержит следующие пояснения:

    • custom-redis управляет redis на основе приложений.
    • В одном файле custom-redis.xml можно настроить несколько приложений.
    • Каждое приложение может иметь несколько реализаций управления кластером redis.
  2. Файл конфигурации состоит из трёх частей:

    1. <appnode></appnode> — настройка кластера redis для каждого приложения. В одном конфигурационном файле можно настроить несколько приложений, а для одного приложения можно настроить несколько узлов кластера. Подробнее см. ниже.
    2. <clusternode></clusternode> — конфигурация отдельных кластеров, каждый из которых может быть настроен с использованием различных типов узлов redis.
    3. <servernode></servernode> — конфигурация всех необходимых узлов redis, включая конфигурацию каждого узла.
  3. Пример конфигурационного файла:

<?xml version="1.0" encoding="UTF-8"?>
<redisrouting>	
	<appnode>
		<!—- appnode下配置多个应用 -->
		<anode>
			<!—- id=应用名对应示例java代码中的cloudyCart -->
			<id>cloudyCart</id>
		    	<!-- clusternodes 配置多个cluster,多个用竖线分割 -->
			<clusternodes>cluster1|cluster2|cluster3</clusternodes>
			<!—- dispatch 暂时无意义-->
			<dispatch>ROUTING</dispatch>
			<!-- TRAILNUMBER尾号 ONLY只读第一个 HASH一致性哈希算法-->
			<clusterstrategy>TRAILNUMBER</clusterstrategy>
			<!-- 是否监控 默认为false 只有=true monitorinterval才有效 -->
			<ismonitor>true</ismonitor>
			<!-- 监控间隔毫秒 -->
			<monitorinterval>2000</monitorinterval>
		</anode>
		<!—- 第二个应用配置-->
		<anode>
			<id>degrade</id>
			<!-- 多个cluster必须用竖线分割,cluster1对应clusternode中配置的id -->
			<clusternodes>cluster1</clusternodes>
			<dispatch>ROUTING</dispatch>
			<clusterstrategy>ONLY</clusterstrategy>
			<!-- 是否监控 默认为false 只有=true monitorinterval才有效 -->
			<ismonitor>true</ismonitor>
			<!-- 间隔毫秒 -->
			<monitorinterval>10000</monitorinterval>
		</anode>
		<!—- 第三个应用配置-->
		<anode>
			<id>other</id>
			<clusternodes>cluster4</clusternodes>
			<dispatch>ROUTING</dispatch>
			<clusterstrategy>ONLY</clusterstrategy>
			<ismonitor>true</ismonitor>
			<monitorinterval>10000</monitorinterval>
		</anode>
	</appnode>
	<!—- redis cluster配置 -->
	<clusternode>
		<cnode>
			<id>cluster1</id>
			<readstrategy>HASHREAD</readstrategy>
			<readservernodes>snode1</readservernodes>
			<writerstrategy>MUTIWRITE</writerstrategy>
			<writeservernodes>snode1</writeservernodes>
			<!-- 该节点对应的尾号,当appnode->anode->clusterstrategy=TRAILNUMBER时才有效 -->
			<trailnumber>0-33</trailnumber>
		</cnode>
		<cnode>
			<id>cluster2</id>
			<!-- 读策略 目前支持 HASHREAD RANDOM-->
			<readstrategy>HASHREAD</readstrategy>
			<readservernodes>snode2</readservernodes>
			<!-- 写策略,写必须是多写 -->
			<writerstrategy>MUTIWRITE</writerstrategy>
			<writeservernodes>snode2</writeservernodes>
			<trailnumber>34-66</trailnumber>
		</cnode>
		<cnode>
			<id>cluster3</id>
			<!-- 读策略 目前支持 HASHREAD RANDOM-->
			<readstrategy>HASHREAD</readstrategy>
			<readservernodes>snode3</readservernodes>
			<!-- 写策略,写必须是多写 -->
			<writerstrategy>MUTIWRITE</writerstrategy>
			<writeservernodes>snode3</writeservernodes>
			<trailnumber>67-99</trailnumber>
		</cnode>
		<cnode>
			<id>cluster4</id>
			<!-- 读策略 目前支持 HASHREAD RANDOM-->
			<readstrategy>HASHREAD</readstrategy>
			<readservernodes>snode4</readservernodes>
			<!-- 写策略,写必须是多写 -->
			<writerstrategy>MUTIWRITE</writerstrategy>
			<writeservernodes>snode4</writeservernodes>
		</cnode>
	</clusternode>
	<!-- servernode 对应每一台需要用到的redis服务器 -->
	<servernode>
		<node>
			<id>snode1</id>
			<maxActive>200</maxActive><!-- 最大的活动连接 -->
			<maxIdle>100</maxIdle><!-- 最大的空闲连接 -->
			<maxWait>1000</maxWait><!-- 最大的等待时间 -->
			<host>10.1.200.77</host><port>6379</port><!--Ip地址和端口 -->
		</node>
		<node>
			<id>snode2</id>
			<maxActive>200</maxActive>
			<maxIdle>100</maxIdle>
			<maxWait>1000</maxWait>
			<host>10.1.200.78</host><port>6379</port>
		</node>
		<node>
			<id>snode3</id>
			<maxActive>200</maxActive>
			<maxIdle>100</maxIdle>
			<maxWait>1000</maxWait>
			<host>10.1.200.84</host><port>6379</port>
		</node>
		<node>
			<id>snode4</id>
			<maxActive>200</maxActive>
			<maxIdle>100</maxIdle>
			<maxWait>1000</maxWait>
			<host>10.1.200.188</host><port>6379</port>
		</node>
	</servernode>
	<!-- redis节点 配置结束 -->
</redisrouting>

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

**custom-redis предоставляет различные способы доступа к redis, упрощает способ вызова redis и поддерживает управление каналами вызовов на основе ролей. Поддерживает распределённый redis.** Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/anytron-custom-redis.git
git@api.gitlife.ru:oschina-mirror/anytron-custom-redis.git
oschina-mirror
anytron-custom-redis
anytron-custom-redis
master