牛叉的多级缓存

Posted justart

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了牛叉的多级缓存相关的知识,希望对你有一定的参考价值。

# nginx.conf

http {
    # you do not need to configure the following line when you
    # use LuaRocks or opm.
    lua_package_path "/path/to/lua-resty-mlcache/lib/?.lua;;";

    # ‘on‘ already is the default for this directive. If ‘off‘, the L1 cache
    # will be inefective since the Lua VM will be re-created for every
    # request. This is fine during development, but ensure production is ‘on‘.
    lua_code_cache on;

    lua_shared_dict cache_dict 1m;

    init_by_lua_block {
        local mlcache = require "resty.mlcache"

        local cache, err = mlcache.new("my_cache", "cache_dict", {
            lru_size = 500,    -- size of the L1 (Lua VM) cache
            ttl      = 3600,   -- 1h ttl for hits
            neg_ttl  = 30,     -- 30s ttl for misses
        })
        if err then

        end

        -- we put our instance in the global table for brivety in
        -- this example, but prefer an upvalue to one of your modules
        -- as recommended by ngx_lua
        _G.cache = cache
    }

    server {
        listen 8080;

        location / {
            content_by_lua_block {
                local function callback(username)
                    -- this only runs *once* until the key expires, so
                    -- do expensive operations like connecting to a remote
                    -- backend here. i.e: call a mysql server in this callback
                    return db:get_user(username) -- { name = "John Doe", email = "john@example.com" }
                end

                -- this call will try L1 and L2 before running the callback (L3)
                -- the returned value will then be stored in L2 and L1
                -- for the next request.
                local user, err = cache:get("my_key", nil, callback, "John Doe")

                ngx.say(user.username) -- "John Doe"
            }
        }
    }
}

以上是关于牛叉的多级缓存的主要内容,如果未能解决你的问题,请参考以下文章

JS特效之很牛叉的轮播图

史上最牛叉的AI导航网站

倒排列表压缩算法汇总——分区Elias-Fano编码貌似是最牛叉的啊!

30行python代码爬取历年双色球

架构实战营模块五 1.多级缓存架构

50行代码实现缓存,JAVA内存模型原理