<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                [TOC] ## 概述 go 服務監聽過期的 key <details> <summary>main.go</summary> ``` package main import ( //"github.com/go-redis/redis" "fmt" "github.com/prometheus/common/log" "time" "unsafe" "github.com/gomodule/redigo/redis" ) type PSubscribeCallback func(pattern, channel, message string) type PSubscriber struct { client redis.PubSubConn cbMap map[string]PSubscribeCallback } func (c *PSubscriber) PConnect(ip string, port uint16) { conn, err := redis.Dial("tcp", "127.0.0.1:6379") if err != nil { panic("redis dial failed.") } c.client = redis.PubSubConn{conn} c.cbMap = make(map[string]PSubscribeCallback) go func() { for { log.Debug("wait...") switch res := c.client.Receive().(type) { case redis.Message: fmt.Printf("%+v\n", res.Pattern) pattern := (*string)(unsafe.Pointer(&res.Pattern)) channel := (*string)(unsafe.Pointer(&res.Channel)) message := (*string)(unsafe.Pointer(&res.Data)) c.cbMap[*channel](*pattern, *channel, *message) case redis.Subscription: fmt.Printf("%s: %s %d\n", res.Channel, res.Kind, res.Count) case error: log.Error("error handle...") continue } } }() } func (c *PSubscriber) Psubscribe(channel interface{}, cb PSubscribeCallback) { err := c.client.PSubscribe(channel) if err != nil { panic("redis Subscribe error.") } c.cbMap[channel.(string)] = cb } func TestPubCallback(patter, chann, msg string) { log.Debug("TestPubCallback patter : "+patter+" channel : ", chann, " message : ", msg) } func main() { log.Info("===========main start============") var psub PSubscriber psub.PConnect("127.0.0.1", 6397) psub.Psubscribe("__keyevent@0__:expired", TestPubCallback) for { time.Sleep(1 * time.Second) } } ``` </details> <br /> 配置 redis.conf ``` notify-keyspace-events KEA ``` 運行redis server ``` > /usr/local/bin/redis-server redis.conf ``` 運行 redis-cli ``` 127.0.0.1:6379> set runooobkey h1 127.0.0.1:6379> EXPIRE runooobkey 1 ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看