RedisX
Что такое RedisX?
Использование одного потока Redis
public class TestRedis {
public static void main(String[] args) {
for (int i = 0; i < 5000; i++) {
new RedisThread("threadredis" + i).start();
}
}
}
class RedisThread extends Thread {
private String name;
public RedisThread() {
// TODO Auto-generated constructor stub
}
public RedisThread(String name) {
this.name = name;
}
@Override
public void run() {
try {
for (int i = 0; i < 100; i++) {
System.out.println(PowerfulRedisUtil.setString(this.name + "xxx" + i, "fdsfsdf" + i) + "=" + i + "="
+ this.getName() + this.getId());
sleep(200);
}
for (int i = 0; i < 50; i++) {
System.out.println(PowerfulRedisUtil.del(this.name + "xxx" + i));
}
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
SharedMasterSlaveSentinel
public class TestRedisUtils {
public static String value = "2017年春运来得早,又赶上火车票预售期由60天调整至30天,购票期相对集中。对准备回家过年的人们而言,回家的火车票还好买吗?";
public static void main(String[] args) throws InterruptedException {
for (int i = 0; i < 500; i++) {
new ThreadTest("treahd" + i).start();
}
}
class ThreadTest extends Thread {
private String name;
public ThreadTest() {
super();
}
public ThreadTest(String name) {
super();
this.name = name;
}
@Override
public void run() {
for (int i = 0; i < 10; i++) {
String string = RedisSharedMasterSlaveSentinelUtil.setObject(name + i, TestRedisUtils.value + name + i);
System.out.println(string + "=" + i);
}
for (int i = 0; i < 10; i++) {
String value = RedisSharedMasterSlaveSentinelUtil.getObject(name + i, String.class);
if (null != value) {
System.out.println(value);
}
long l = RedisSharedMasterSlaveSentinelUtil.del(name + i);
System.out.println(l + "=" + i);
}
}
}
RedisX Redis Cluster
public class TestRedisCluster {
public static void main(String[] args) {
for(int i=0;i<100;i++) {
new RedisClusterThread("RedisClusterThread" + i,100).start();
}
}
}
class RedisClusterThread extends Thread {
private String name;
private int size;
public RedisClusterThread() {
// TODO Auto-generated constructor stub
}
public RedisClusterThread(String name,int size) {
this.name = name;
this.size = size;
}
@Override
public void run() {
// try {
for (int i = 0; i < this.size; i++) {
System.out.println(RedisClusterUtils.setString(this.name + "xxx" + i, "fdsfsdf" + i) + "=" + i + "="
+ this.getName() + this.getId());
//sleep(200);
}
for (int i = 0; i < this.size; i++) {
System.out.println(RedisClusterUtils.del(this.name + "xxx" + i));
}
// } catch (InterruptedException e) {
// TODO Auto-generated catch block
// e.printStackTrace();
// }
}
}
Поддержка Spring В пакете cn.skynethome.redisx.spring предоставляется поддержка Spring. Для использования Master Slave с разделением чтения и записи в конфигурации Spring используется следующий код:
`
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ` Конфигурация Spring может напрямую настраивать пул потоков или указывать на файл конфигурации
JAVA Spring аннотация тестирования
@RunWith(SpringJUnit4ClassRunner.class) // Интеграция
@ContextConfiguration(locations="classpath:applicationContext_masterslave.xml") // Загрузка конфигурации
public class SpringRedisXMasterSlaveTest {
@Autowired
private RedisXMasterSlave redisXMsterSlave;
@Autowired
private RedisXMasterSlave redisXMsterSlaveOfConfig;
@Test
public void TestRedisX() {
String key = "key:_redisx_01_masterslave";
// Добавление объекта
String r_ = redisXMsterSlave.setObject(key, "12356465");
System.out.println("Сохранено: " + r_);
// Получение объекта
String s = redisXMsterSlave.getObject(key, String.class);
System.out.println("Данные из кэша: " + s);
// Удаление объекта
long d_ = redisXMsterSlaveOfConfig.del(key);
System.out.println("Удалено: " + d_);
}
}
Группа обмена сообщениями RedisX:
Рекомендуется ознакомиться с открытыми проектами: zbus, talent-aio, nredis-proxy.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )