Hello!
On Sat, Jan 19, 2013 at 2:39 AM, lhmwzy wrote:
> memcached的数据能保存,shared_dict的数据,一旦NGINX重启了,就丢失了
> 这算是一个区别?
>
memcached 进程退出或者重启,数据会全部丢失(如果没有使用什么特别的第三方序列化插件的话)。
Nginx 如果是通过 HUP 信号重新加载配置的话,shared_dict 的数据不会受到影响。但如果是 nginx master
进程退出的话,则共享内存中的数据会丢失。
在 ngx_lua 中使用 shared_dict 和 memcached 的主要区别是:
1. shard_dict 局限于单个 nginx 服务器实例内部,无法跨域多个 nginx 服务器实例(注意,它是为单个 nginx
服务器实例中的所有 worker 进程共享的!),更不能跨越多台机器;
2. memcached 可以为多机共享,可以实现分布式缓存;
3. shared_dict 在性能上一般要高出很多,因为不涉及 socket 通信;
4. memcached 在性能上一般要低一些,因为会涉及到 socket 通信,甚至 TCP 通信。
Best regards,
-agentzh
--
邮件自: 列表“openresty”,专用于技术讨论!
发言: 请发邮件到 openresty@googlegroups.com
退订: 请发邮件至 openresty+unsubscribe@googlegroups.com
详情: http://groups.google.com/group/openresty
官网: http://openresty.org/
仓库: https://github.com/agentzh/ngx_openresty
建议: 提问的智慧 http://wiki.woodpecker.org.cn/moin/AskForHelp
教程: http://agentzh.org/misc/nginx/agentzh-nginx-tutorials-zhcn.html