当前位置:  开发笔记 > 编程语言 > 正文

缓存在服务器上的内存中

如何解决《缓存在服务器上的内存中》经验,为你挑选了1个好方法。

我想用客户端Javascript和后端服务器(Python)编写Web应用程序.客户端需要经常以AJAX方式从服务器获取数据.数据库中的数据,并且每个请求的加载费用都很高.

但是,在桌面应用程序中,我只需将数据从DB加载一次到内存然后访问它.在Web应用程序中 - 服务器代码每次都会运行请求,所以我不能这样做(每次运行都必须再次从DB加载到内存).这怎么办?一个进程可以在服务器上运行,还是我必须在这里使用不同的东西?

一个例子就像在标签的stackoverflow上自动完成一样 - 如何在服务器中实现快速缓存/加载?


我想知道像memcached这样的数据存储是否真的是自动完成的好方法?你如何表示部分匹配的关键?



1> TFD..:

使用memcache或类似工具

缓存中的每个项目都有一个密钥和一个到期日期和时间

您需要使密钥对您的应用程序有用.一种典型的键模型图案是Security.Domain.Query.QueryValue对于套,或Security.Domain.ID为单个对象

例如

ALL.Product.Q.RedProducts域中的一个集合,使用查询Red表示所有用户

Admin.Product.Q.BluProducts域中的一个集合,使用查询Blu仅适用于Admin用户

ALL.Customer.O.12345是来自客户域ID 12345所有用户的单个对象图

如果需要,您还可以向密钥添加格式.

因此,当您的Web应用程序请求自动完成框的数据时,处理该调用的Web服务首先从memcache请求数据,如果没有找到或过期,它只会执行昂贵的数据库查询

例如,自动完成以查找产品

    请求:http://server.com/product? q = gre& format = json

    服务器生成memcache密钥ALL.Product.Name.gre.json

    Memcache查询失败

    生成SQL查询从名为"gre%"的名称选择产品ID,名称,价格

    将结果格式化为Json

    将结果保存到memcache中

    将结果返回给浏览器

还有下一次

    请求:http://server.com/product? q = gre& format = json

    服务器生成memcache密钥ALL.Product.Name.gre.json

    Memcache查询成功

    将结果返回给浏览器

秘诀在于有一个关键模型适用于所有出现的memcache,并且不会为不同的关注点生成重复的键.请记住在查询参数中编码分隔符(在示例中为".")

推荐阅读
跟我搞对象吧
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有