redis的键空间通知(订阅和发布)

redis的key值设置了生命周期后,键值失效触发事件

需要一个线程专门监听redis键值的事件

Jedis jedis=redisTest.getJedis();

for (int i = 0; i < 1; i++) {

TestThread thread= new TestThread(jedis);

thread.start();

}


在线程中配置redis的键空间通知事件:

pool.configSet("notify-keyspace-events", "Ex");

注:

默认配置是这样的:notify-keyspace-events ""

根据文档中的说明:
K    Keyspace events, published with __keyspace@__ prefix.

E    Keyevent events, published with __keyevent@__ prefix.

g    Generic commands (non-type specific) like DEL, EXPIRE, RENAME, ...

$    String commands

l    List commands

s    Set commands

h    Hash commands

z    Sorted set commands

x    Expired events (events generated every time a key expires)

e    Evicted events (events generated when a key is evicted for maxmemory)

A    Alias for g$lshzxe, so that the "AKE" string means all the events.

在线程中添加订阅事件:pool.psubscribe(new MySubscribe(), "*");

事件需要继承redis的JedisPubSub类:

该类中有两个重要的方法:onPSubscribe(String pattern, int subscribedChannels):订阅时触发事件

onPMessage(String pattern, String channel, String message):通知事件发生时触发事件

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Redis 配置文件示例 注意:想要读取配置文件,Redis的第一个参数必须是文件的路径 ./redis-serv...
    起个名忒难阅读 1,230评论 0 1
  • 5/15/2017 7:06:35 PM 纵观各大组件,配置文件占据极其重要的地位。可配置化也是当下开发的一流行趋...
    爱做梦的胖子阅读 4,458评论 0 8
  • # redis 配置文件示例 # 当你需要为某个配置项指定内存大小的时候,必须要带上单位, # 通常的格式就是 1...
    iyimao阅读 819评论 0 2
  • 1.1 资料 ,最好的入门小册子,可以先于一切文档之前看,免费。 作者Antirez的博客,Antirez维护的R...
    JefferyLcm阅读 17,110评论 1 51
  • 本文将从Redis的基本特性入手,通过讲述Redis的数据结构和主要命令对Redis的基本能力进行直观介绍。之后概...
    kelgon阅读 61,264评论 23 625