毛片毛片女人毛片毛片 I 欧美精品一区视频 I 欧美一区二区公司 I 太久av I 欧美激情一区二区三区在线 I 不卡一区在线 I 免费视频亚洲 I 好爽好舒服要高潮了视频 I 国产欧美一区二区三区免费 I 国产后入清纯学生妹 I 日韩免费在线观看 I 香蕉免费一区二区三区在 I 精品一区二区免费视频 I 华人永久免费 I 免费人成在线观看vr网站 I 久久天天色综合 I 久久久久久久91 I 国产亚洲www I 亚洲教育网 I 日本欧美激情 I 超碰在线人人干 I 亚洲国产日韩a在线乱码 I 久久亚洲精品国产亚洲老地址 I 人人射人人干 I 亚洲欧美综合区 I 视频在线一区二区 I 亚洲成人在线网 I 精品人伦一区二区三电影 I 极品色影院在线观看 I 上av在线 I 成人免费看毛片 I 欧美孕妇高潮孕交视频 I 黑帮大佬和我的365日第二部 I 爱情岛亚洲首页论坛 I 成 人 免费 在线电影

您的位置:首頁 >觀察 > 正文

環球報道:手把手帶你了解redis回調機制及代碼實現

無德之人常嫉他人之有德?!喔?/p>


(相關資料圖)

1.redis回調

1.概念

Redis是一種高性能的內存數據存儲系統,它支持多種數據結構和靈活的操作。除了提供常規的鍵值存儲功能外,Redis還支持訂閱/發布、事務、Lua腳本等高級功能,其中回調函數是Redis的一個重要特性之一。

回調函數是一種在特定事件發生時自動執行的函數。在Redis中,回調函數通常用于在特定事件發生時自動執行一些操作。這些事件包括:

客戶端連接/斷開連接數據庫鍵過期發布/訂閱消息

通過使用回調函數,我們可以在這些事件發生時執行一些自定義的邏輯,從而實現更加靈活和復雜的應用程序。

2.腳本配置文件

在Redis中,回調函數通常是通過在配置文件中定義來注冊的。下面是一個示例配置文件,其中包含了一些回調函數的定義:

bashCopy code# Sample Redis configuration file?# Register a callback function to execute when a client connectsclient-connect-callback /path/to/client-connect-script.sh?# Register a callback function to execute when a client disconnectsclient-disconnect-callback /path/to/client-disconnect-script.sh?# Register a callback function to execute when a key expireskeyspace-event-notification expired /path/to/key-expire-script.sh?# Register a callback function to execute when a message is published to a channelnotify-keyspace-events KEA /path/to/pubsub-script.sh

在上面的示例中,我們注冊了四個回調函數。第一個回調函數在客戶端連接時執行,第二個在客戶端斷開連接時執行,第三個在鍵過期時執行,第四個在消息發布時執行。

要使用回調函數,我們需要編寫相應的腳本。腳本可以是任何可執行文件,如Bash腳本、Python腳本等等。下面是一個示例Bash腳本,用于在客戶端連接時打印一條消息:

bashCopy code#!/bin/bash?echo "A client has connected"

在上面的腳本中,我們使用了echo命令來輸出一條消息。當客戶端連接時,Redis會自動執行這個腳本,并將消息輸出到控制臺。

3.概念總結

在編寫回調函數時,我們還需要考慮一些安全問題。由于回調函數通常是在Redis進程的上下文中執行的,因此我們需要確保腳本不會執行任何危險操作,如刪除文件或執行系統命令等等。為了確保安全性,我們可以使用一些技術,如沙盒化或限制腳本執行權限等等。

總之,回調函數是Redis的一個非常有用的特性,它可以讓我們在特定事件發生時自動執行一些操作,從而實現更加靈活和復雜的應用程序。如果您正在使用Redis,并且想要了解更多關于回調函數的內容,可以看Redis官方文檔。

2.場景需求

1.需求

例如:京東購物車結算,在用戶進行結算的時候,支付時間為30分鐘,用戶未在30分鐘之內支付,則需要進入待支付狀態。

3.實現方案

咱們可以采用redis ,key有效期回調事件實現,為每筆支付的訂單設置有限期為30分鐘,在當前key失效的時候,redis進行回調。

4.redis配置

首先找到redis.conf配置文件,如果你跟我一樣使用mac包管理工具brew安裝的。

找到homebrew.mxcl.redis.plist文件

打開之后就可以看到redis.conf的文件地址了。

打開配置文件之后找到notify-keyspace-events "",然后設置成notify-keyspace-events "Ex"

notify-keyspace-events 的參數可以是以下字符的任意組合,它指定了服務器該發送哪些類型的通知:

字符

發送的通知

K

鍵空間通知,所有通知以__keyspace@__ 為前綴

E

鍵事件通知,所有通知以 __keyevent@__ 為前綴

g

DEL 、 EXPIRE 、 RENAME 等類型無關的通用命令的通知

$

字符串命令的通知

l

列表命令的通知

s

集合命令的通知

h

哈希命令的通知

z

有序集合命令的通知

x

過期事件,每當有過期鍵被刪除時發送

e

驅逐事件,每當有鍵因為maxmemory政策而被刪除時發送

A

參數 g$lshzxe 的別名

5.代碼實現

首先發送一條普通消息,設置過期時間。

@ApiOperation(value = "測試redis回調")    @SaCheckLogin    @PostMapping("/test")    public ApiResponse testTask(){        redisUtil.set("FILE:userInfo","我是一條消息,來測試是否進入回調",60);        return ApiResponse.ok();    }

添加RedisListenerConfig回調配置類

@Slf4j@Configurationpublic class RedisListenerConfig {?    @Bean    RedisMessageListenerContainer container(RedisConnectionFactory connectionFactory) {        RedisMessageListenerContainer container = new RedisMessageListenerContainer();        container.setConnectionFactory(connectionFactory);        return container;    }?    @Component    public static class RedisKeyExpirationListener extends KeyExpirationEventMessageListener {        public RedisKeyExpirationListener(RedisMessageListenerContainer container) {            super(container);        }        @Override        public void onMessage(Message message, byte[] pattern) {            final String keyInfo = "FILE:userInfo";            String key = message.toString();            log.info("redis失效進入回調函數攜帶key:{}", key);            if (key != null && key.startsWith(keyInfo)) {                log.info("需要特殊處理的key,進行業務處理");            }        }    }}

6.測試結果

關鍵詞

熱門資訊

圖片新聞

主站蜘蛛池模板: 午夜宫电影| 激情五月色播 | 最新色图| 日本肥老妇色xxxxx日本老妇 | 天天摸夜夜摸夜夜狠狠摸 | 奇米视频888 | 夜夜欢性恔免费视频 | 久久久久免费精品国产 | 久久久久久成人精品 | 99久久久精品免费观看国产 | 亚洲色欲一区二区三区在线观看 | 国产偷国产偷亚洲高清日韩 | 成人免费大片a毛片 | 天天摸天天做天天爽 | 无码av中文字幕久久专区 | 亚洲人成亚洲精品 | 免费观看一级毛片 | 亚洲精品www | 久久精品九九热无码免贵 | 国产精品偷伦视频免费观看了 | 又大又粗欧美黑人aaaaa片 | 狠狠久久亚洲欧美专区 | 护士奶头又大又软又好摸 | www.99热这里只有精品 | 66lu国产在线观看 | 亚洲午夜无码久久 | 成人久久免费视频 | 5278.cc| 精品偷自拍另类在线观看 | 777亚洲精品乱码久久久久久 | 中文成人在线 | cheaperapp.work直接访问 | 天堂最新在线资源 | 国产免费内射又粗又爽密桃视频 | 国产亚洲婷婷香蕉久久精品 | 奇米影| 日本边添边摸边做边爱的网站 | 日韩电影中文字幕 | 日本欧美不卡一区二区三区在线 | 亚洲国产中文字幕 | 欧美两性网 | 久久久久久久国产精品 | 欧洲精品一卡2卡三卡4卡影视 | 处破痛哭a√18成年片免费 | 国产++欧洲韩国野花视频 | 欧美视频精品 | 青青色在线观看 | 人妻系列无码专区久久五月天 | 男女超爽视频免费播放 | 日本精品久久无码影院 | 欧美成人家庭影院 | 人妖一区 | 性无码一区二区三区在线观看 | 天堂资源在线观看 | 亚洲va中文字幕无码久久 | 国产精品无码无卡无需播放器 | 美女粉嫩饱满的一线天mp4 | 无码h肉动漫在线观看 | 成人午夜动漫在线观看 | 日韩av无码中文无码不卡电影 | 色吧综合 | 香蕉久久夜色精品升级完成 | 午夜影院福利社 | 国产精品熟女高潮视频 | 777午夜福利理伦电影网 | 少妇精品久久久一区二区三区 | 337p粉嫩日本欧洲亚洲大胆 | 亚洲一区二区三区在线播放 | 久草免费色站 | 双性精h调教灌尿打屁股的文案 | 奇米网色 | 国产aⅴ激情无码久久久无码 | 夜夜高潮夜夜爽国产伦精品 | 一级片免费在线观看 | 日本福利视频 | 三a级片 | 日本九九热在线观看官网 | 西西人体www大胆高清视频 | 91免费大片| 亚洲精品国产成人 | 人人爽人人澡人人高潮 | 日韩欧美二区 | 欧美日韩北条麻妃一区二区 | 日韩一区二区三区精品 | 国产精品高清m3u8在线播放 | 国精产品一区一区三区有限公司 | 中文字幕 国产精品 | 97久久国语露脸精品对白 | 亚洲精品毛片一区二区三区 | www夜插内射视频网站 | 成人免费看 | 久久无码人妻一区二区三区 | 日本大胆欧美人术艺术 | 色视频免费版高清在线观看 | 粉嫩小泬无遮挡久久久久久 | 日韩精品无码一区二区中文字幕 | 黄色网页免费 | 清清草免费视频 | 国产对白叫床清晰在线播放 |