kelovp.
首页 Java Java Redis实现消息推送

Java Redis实现消息推送

这里有件事情比较尴尬。因为跨了一个服务平台,所以得通过消息通知来实现功能(其实高耦合我查表也能解决,但是被否决了)

    废话不多说:在这次是通过Redis 在Java当中的使用来实现。

    在老早以前我安装了Redis本地,尝试了这种Map式的存储特点,听说其I/O效率高,但是也没有做测试,百度说:

  • 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
  • 丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
  • 原子 – Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。
  • 丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。

    在本地使用Java的时候我们分为两个过程:

    压栈:

public class TestCollect { private static RedisTemplate<String, String> redisTemplate = RedisFactory .createStringRedisTemplate(“TestTracke”); @Test public void TestIn(){ // redisTemplate.opsForList().leftPush(“first”, ”{}”); // redisTemplate.opsForList().leftPush(“second”, ”{}”); } }

    当然,在使用RedisFactory创建RedisTemplate的时候得选取名称空间,而在入栈的时候得设定key。(注意左右两个left/right)

    出栈:

text
 private static RedisTemplate<String, String> redisTemplate = RedisFactory
            .createStringRedisTemplate("TestTracke");

         String collectStr = redisTemplate.opsForList().leftPop(“first”, 1, TimeUnit.SECONDS);  String contentStr = redisTemplate.opsForList().leftPop(“second”, 1, TimeUnit.SECONDS);

    以上便是来自Java Spring Redis的简单使用,如果是普通情况直接使用的话得导入 

import redis.clients.jedis.Jedis;

     而在使用方法上也有所不同:得先创建连接(把Redis理解为DB就很好接受了)

public class RedisJava { public static void main(String[] args) { //连接本地的 Redis 服务 Jedis jedis = new Jedis(“localhost”); System.out.println(“连接成功”); //查看服务是否运行 System.out.println(“服务正在运行: “+jedis.ping()); } }

public class RedisKeyJava { public static void main(String[] args) { //连接本地的 Redis 服务 Jedis jedis = new Jedis(“localhost”); System.out.println(“连接成功”);

text
    // 获取数据并输出
    Set<String> keys = jedis.keys("\*"); 
    Iterator<String> it=keys.iterator() ;   
    while(it.hasNext()){   
        String key = it.next();   
        System.out.println(key);   
    }
}

}

K
kelovp
后端工程师 · 广告投放 / 商业化
八年后端,做广告投放与商业化变现系统,现在带团队折腾商业化中台与 AIGC 内容平台。工作之外写点电子音乐、动漫解析和故事。相信把事情想清楚,才写得明白。