<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      go~在阿里mse上使用redis.call

      相關(guān)依賴

      • github.com/higress-group/proxy-wasm-go-sdk
      • github.com/alibaba/higress/plugins/wasm-go

      標(biāo)準(zhǔn)的redis

      下面是一個讀取redis指定key的方法,使用了higress的wasm-go組件實現(xiàn)的

      	err := config.Client.SMembers("online", func(response resp.Value) {
      		for _, item := range response.Array() {
      			str := item.String()
      			if strings.HasPrefix(str, "\"") {
      				str = str[1:]
      			}
      			if strings.HasSuffix(str, "\"") {
      				str = str[:len(str)-1]
      			}
      			if str == val {
      				msg := fmt.Sprintf("your %v (%v) is illegality.", blackType, val)
      				fmt.Println(msg)
      				ctx.SetContext("X-Blacklist-Reason", msg)
      				proxywasm.SendHttpResponse(ERROR_CODE, nil, []byte(msg), -1)
      				break
      			}
      		}
      		proxywasm.ResumeHttpRequest() // 恢復(fù)
      	})
      

      擴(kuò)展的Lua方式

      在Redis的Lua腳本中,可以使用redis.call來執(zhí)行Redis命令。如果需要在Lua腳本中設(shè)置鍵的過期時間,可以通過調(diào)用EXPIRE命令來實現(xiàn)。

      下面是一個示例,演示如何在Lua腳本中使用redis.call執(zhí)行EXPIRE命令來設(shè)置鍵的過期時間:

      local key = KEYS[1]
      local ttl = ARGV[1]
      
      redis.call('SET', key, 'value')
      redis.call('EXPIRE', key, ttl)
      
      return 'Key set with expiration time'
      

      在上面的示例中,首先通過KEYS[1]獲取傳入的鍵名,通過ARGV[1]獲取傳入的過期時間(以秒為單位)。然后使用redis.call('SET', key, 'value')設(shè)置鍵值對,并使用redis.call('EXPIRE', key, ttl)設(shè)置鍵的過期時間為ttl秒。最后返回一個提示信息。

      通過這種方式,你可以在Lua腳本中使用redis.call執(zhí)行EXPIRE命令來設(shè)置鍵的過期時間。

      github.com/alibaba/higress/plugins/wasm-go中的Eval

      阿里封裝的wasm-go插件,在2024-03-18這一天支持了redis,同時也支持使用redis.call,你可以調(diào)用wasm-go中的Eval方法

      • 方法原型
      Eval(script string, numkeys int, keys, args []interface{}, callback RedisResponseCallback) error
      
      • 開發(fā)人員調(diào)用它
      	redisKey := "business:username"
      	redisKey2 := "business:session_state"
      	var keyArr []interface{}
      	keyArr = append(keyArr, redisKey, redisKey2)
      	var valueArr []interface{}
      	valueArr = append(valueArr, logger.Username, logger.Username+"_"+logger.SessionState, 60*60*24*30)
      	err2 := config.Client.Eval("redis.call('ZINCRBY', KEYS[1], 1, ARGV[1]) redis.call('ZINCRBY', KEYS[2], 1, ARGV[2]) redis.call('EXPIRE', KEYS[1], ARGV[3]) redis.call('EXPIRE', KEYS[2], ARGV[3]) return 1", 2, keyArr, valueArr, func(response resp.Value) {
      		if response.Integer() == 1 {
      			proxywasm.ResumeHttpRequest()
      		}
      	})
      	if err2 != nil {
      		return types.ActionContinue
          }
         return types.ActionPause
      
      posted @ 2024-04-06 12:05  張占嶺  閱讀(274)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲热无码av一区二区东京热av| 高清国产av一区二区三区| 日韩一区二区三区亚洲一| AV无码免费不卡在线观看| 在线看无码的免费网站| 亚洲AV无码一二区三区在线播放| 亚洲最大av资源站无码av网址| 国产精品自拍三级在线观看| 国产精品欧美福利久久| 国产网友愉拍精品视频手机| 国产精品一二三区久久狼| 亚洲欧美成人aⅴ在线| 亚洲欧洲日产国码久在线| 欧美日韩人成综合在线播放| 亚洲午夜福利精品一二飞| 国产免费一区二区不卡| 国产色无码专区在线观看| 国产精品嫩草99av在线| 国产一级三级三级在线视| 国产一区视频一区欧美| 无码成人精品区在线观看| 久久一级黄色大片免费观看| 亚洲第一精品一二三区| 久久这里有精品国产电影网| 香蕉久久夜色精品国产成人| 久久人妻无码一区二区三区av| 一本久道久久综合狠狠躁av| 讷河市| 亚洲精品第一区二区在线| 亚洲精品无码久久一线| 五月丁香综合缴情六月小说| 性色av一区二区三区v视界影院 | 精品国产一区二区在线视| 亚洲人成人网站色www| 日韩免费无码视频一区二区三区| 日韩精品国产中文字幕| 国产免费高清69式视频在线观看| 久久综合色一综合色88| 国产丝袜视频一区二区三区 | 国产一区二区三区不卡视频| 国产成人精品国产成人亚洲|