`
haihai
  • 浏览: 72337 次
  • 性别: Icon_minigender_1
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

关于缓存的想法

阅读更多
现在基本对数据库的操作出现性能问题的时候,第一个想到的是缓存,现在谈得比较多的memcache缓存,其实他就是大的hash表,可以作为一个全局的cache,而且他没有像数据库中的一些功能,我想既然是这样,我们可以用嵌入式的内存数据库,比如hsql,作为cache来用,这样数据也是放在内存在,我们在做select的时候,仍然操作的是内存,这样我们也可以把这种“嵌入式的内存数据库”来作为全局的缓存,和memcache也是一样的,不用磁盘用内存,而且也获得了数据库的一些功能,这样做或许比memcache还更好,大家讨论一下,像这样做有什么缺点?
分享到:
评论
8 楼 haihai 2007-10-08  
引用
timerri

问题大大的。。。

你一个记录一个记录的操作或许不会有问题,可是当你批量操作的时候,你怎么保证所需要的数据都在缓存中?难道每次操作还要去同步所有需要操作的数据?

这个问题用memcache也存在啊,要想百分之百命中缓存,就只有把所有数据都缓存了,不过你说的用oodb,到是不错,我也想过
7 楼 haihai 2007-10-08  
引用
movingboy   

haihai 写道
我现在想到第一个问题,就是像用hsql来作为cache的话,在数据很大的时候,到GB级别的时候,会不会不稳定

据robbin说,hsql是单线程的,无法处理并发访问的情况。他建议考虑MySQL的内存表

我还不清除hsql是单线程的,不一定就是hsql,也可以用derby,berkelyDB,当然那两个也没有怎么看过,用myql的内存表,数据会持久化到硬盘吗,不知道mysql还有个内存表的功能。
6 楼 movingboy 2007-10-08  
haihai 写道
我现在想到第一个问题,就是像用hsql来作为cache的话,在数据很大的时候,到GB级别的时候,会不会不稳定

据robbin说,hsql是单线程的,无法处理并发访问的情况。他建议考虑MySQL的内存表
5 楼 wangzhongjie 2007-10-07  
海量数据就很难了
4 楼 blowfisher 2007-10-07  
memcache 更适合在业务层或更高的层次来做,
考虑到可以把cache平行分布到多个memcached节点上,扩展能力是非常惊人的,特别适合海量数据高并发读取时采用。
3 楼 timerri 2007-10-07  
问题大大的。。。

你一个记录一个记录的操作或许不会有问题,可是当你批量操作的时候,你怎么保证所需要的数据都在缓存中?难道每次操作还要去同步所有需要操作的数据?

sql支持的操作强项就是批量,而对单个记录操作就是杀鸡用牛刀了(性能也远远不如hash表有效),所以sql型的数据库并不很适合用作缓存(除非你有很特殊的应用)。

想用数据库作为缓存的话,推荐用oodb一类的,他们擅长于对单个对象的存取,适合作磁盘缓存。他们在内存中的结构也是类似于一个hash表。
2 楼 pi1ot 2007-10-07  
“不好的缓存策略其实只是内存泄露的另一个代名词”。
“缓存只和策略有关”,和具体体现方式关系不大。
-- the old new thing.
1 楼 haihai 2007-10-07  
我现在想到第一个问题,就是像用hsql来作为cache的话,在数据很大的时候,到GB级别的时候,会不会不稳定

相关推荐

    python入门-30.寻找列表中只出现一次的数字-寻找单身狗.py

    python入门-30.寻找列表中只出现一次的数字——寻找单身狗.py

    布尔教育linux优化笔记

    linux优化笔记,配套视频:https://www.bilibili.com/list/474327672?sid=4496133&spm_id_from=333.999.0.0&desc=1

    知识付费系统-直播+讲师入驻+课程售卖+商城系统-v2.1.9版本搭建以及资源分享下载

    知识付费系统-直播+讲师入驻+课程售卖+商城系统-v2.1.9版本搭建以及资源分享下载,CRMEB知识付费分销与直播营销系统是由西安众邦科技自主开发的一款在线教育平台,该系统不仅拥有独立的知识产权,还采用了先进的ThinkPhp5.0框架和Vue前端技术栈,集成了在线直播教学及课程分销等多种功能,旨在为用户提供全方位的学习体验,默认解压密码youyacaocom

    美妆神域-JAVA-基于springBoot美妆神域设计与实现

    美妆神域-JAVA-基于springBoot美妆神域设计与实现

    原生js制作Google粘土logo动画涂鸦代码.zip

    原生js制作Google粘土logo动画涂鸦代码.zip

    golin 扫描工具使用, 检查系统漏洞、web程序漏洞

    golin 扫描工具使用, 检查系统漏洞、web程序漏洞

    原生态纯js图片网格鼠标悬停放大显示特效代码下载.zip

    原生态纯js图片网格鼠标悬停放大显示特效代码下载.zip

    用AWLUM进行灰色编码2^2n-QAM调制的精确率Matlab代码.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 替换数据可以直接使用,注释清楚,适合新手

    去水印web端独立版web

    去水印web端独立版web

    原生js制作左侧浮动可折叠在线客服代码.zip

    原生js制作左侧浮动可折叠在线客服代码.zip

    Chrome 谷歌浏览器下载

    Chrome 谷歌浏览器下载

    亲测全新完整版H5商城系统源码 附教程

    全新完整版H5商城系统源码 自己花钱买的,亲测可用,需要自行下载 H5商城系统设置是实现商城基本功能的核心部分,涵盖了从网站配置、短信和支付配置,到商品、工单、订单、分站和提现管理等多个模块的设置。以下是详细的设置指南,帮助您快速上手并高效管理商城系统。 测试环境:Nginx+PHP7.0+MySQL5.6 1. 网站配置 设置商城名称、LOGO、标题、联系方式和SEO关键词等,确保商城专业和易于搜索。 2. 短信配置 配置短信接口和模板,用于发送订单通知、验证码等,提升用户体验。 3. 支付接口配置 配置微信、支付宝等支付接口,填写API密钥和回调地址,确保支付流畅。 4. 商品分类管理 对商品进行分类和排序,设置分类名称和图标,便于用户查找商品。 5. 商品管理 添加和管理商品信息、规格、图片等,确保商品信息准确丰富。 6. 工单管理 查看和回复用户工单,记录售后问题,提升用户服务质量。 7. 订单管理 查看订单详情,更新订单状态,支持批量导出,方便订单跟踪。 8. 分站管理 创建不同区域分站,设置权限,统一管理各区域市场。 9. 提现管理

    短信3.141592672893982398674234

    apk安装包

    原生js选项卡插件自定义图片滑动选项卡切换.zip

    原生js选项卡插件自定义图片滑动选项卡切换.zip

    1-宗教信息佛教佛寺寺庙庵堂相关数据-社科数据.zip

    宗教信息佛教佛寺寺庙庵堂相关数据集提供了全国各个地区省市县各个佛教寺庙的详细信息。这些数据不仅包括寺庙的名称和负责人姓名,还涵盖了所属省份、地级市、区县、具体地址、建立日期以及支派类别等关键信息。该数据集整理了超过3万条样本,为研究中国佛教寺庙的分布、历史和文化提供了丰富的第一手资料。这些信息有助于了解佛教在中国的传播和发展,以及寺庙在社会和文化中的作用。数据的整理和提供,对于宗教学、社会学、历史学和文化研究等领域的学者来说,是一个宝贵的资源。

    线性电阻网络的等效电阻计算Matlab代码.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 替换数据可以直接使用,注释清楚,适合新手

    简单的 Python 版本管理.zip

    简单的 Python 版本管理pyenvpyenv 可让您轻松在多个 Python 版本之间切换。它简单、不引人注目,并遵循 UNIX 传统,即使用单一用途的工具来做好一件事。该项目由rbenv和 ruby​​-build分叉而来,并针对 Python 进行了修改。pyenv 的作用是什么......允许您根据每个用户更改全局 Python 版本。为每个项目的 Python 版本提供支持。允许您使用环境变量覆盖 Python 版本。一次搜索多个 Python 版本的命令。这可能有助于使用tox跨 Python 版本进行测试。与 pythonbrew 和 pythonz 相比,pyenv没有……依赖于Python本身。pyenv由纯shell脚本制作。不存在Python的引导问题。需要加载到你的 shell 中。相反,pyenv 的 shim 方法通过向你的 中添加目录来工作PATH。管理虚拟环境。当然,你可以自己创建虚拟环境 ,或者使用pyenv-virtualenv 来自动化该过程。目录安装获取 PyenvLinux/UNIX自动安装程序基本

    Notepad-v2.20工具,是替代Notepad++的首选工具

    Notepad-v2.20工具,是替代Notepad++的首选工具

    原生js随机图片拖拽排序代码.zip

    原生js随机图片拖拽排序代码.zip

    更快、更好、更稳定的Redis桌面(GUI)管理客户端,兼容Windows、Mac、Linux,性能出众,轻松加载海量键值

    更快、更好、更稳定的Redis桌面(GUI)管理客户端,兼容Windows、Mac、Linux,性能出众,轻松加载海量键值

Global site tag (gtag.js) - Google Analytics