sql >> データベース >  >> NoSQL >> Redis

制限付きのRedisINCRBY

    この答えはあなたが期待するものではないかもしれません。しかし、Luaスクリプトは非常に明確な解決策であると言わざるを得ません。

    -- range-incrby.lua key , increment
    local key = KEYS[1]
    local increment = ARGV[1]
    local cnt = redis.call('get', key) or 0
    cnt = cnt + increment
    if (cnt >= 0 and cnt <= 100) then
        redis.call('set', key, cnt)
        return cnt
    end
    

    また、範囲が[0, 2^N - 1]の場合 、次にBITFIELDを使用できます 問題を解決するためのオーバーフロー制御を備えたコマンド。

    BITFIELD key OVERFLOW FAIL INCRBY uN 0 increment
    

    ただし、そうではないようです。




    1. mongoで効率的にクエリでドキュメントを削除するにはどうすればよいですか?

    2. Redisでソートされたセットを使用したインデックス作成

    3. Redis 6はマルチコアCPUを利用できますか?

    4. mongodbサーバーに接続しようとしたときにmongoコマンドが認識されない