Redis-分布式

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

package test.jedis;

import java.util.HashSet;

import java.util.Set;

import org.junit.Test;

import redis.clients.jedis.Jedis;

import redis.clients.jedis.JedisSentinelPool;

/**

 * 分布式redis 操作

 * 没有多台机器,在同一台机器上多个redis 实例来模拟多台机器测试

 *

 * */

public class SentinelPoolTest {

     

    @Test

    public void testJedis() throws InterruptedException {

        Set<String> sentinels = new HashSet<String>();

        sentinels.add("127.0.0.1:6377");

        sentinels.add("127.0.0.1:6378");

        sentinels.add("127.0.0.1:6379");

        

        JedisSentinelPool sentinelPool = new JedisSentinelPool("master_test",sentinels);

        Jedis jedis = sentinelPool.getResource();

        System.out.println("current Host:" + sentinelPool.getCurrentHostMaster());

        String key = "current key";

        String cacheData = jedis.get(key);

        if (cacheData == null) {

            jedis.del(key);

        }

        jedis.set(key, "write data");// 写入

        System.out.println(jedis.get(key));// 读取

        System.out.println("current Host:"  + sentinelPool.getCurrentHostMaster());// down掉master,观察slave是否被提升为master

        jedis.set(key, "bbb");// 测试新master的写入

        System.out.println(jedis.get(key));// 观察读取是否正常

        sentinelPool.returnResource(jedis);

        jedis.disconnect();

    }

}

猜你喜欢

转载自blog.csdn.net/liao1990/article/details/81177264
今日推荐