关于数据库缓存

CHZiroy 2012-11-01 02:32:04
目前我是用java socket写的,,

现在我的服务器主要问题是这样
在服务器的数据库中保存文件路径,客户端发送请求从服务器下载文件,然后操作文件,保存提交文件给服务器
并发数量大约1000


现在我有几个问题

1,
客户端发送一个表示请求的字节流(字节流的协议我自己设置好了),有人说可以通过发送一个xml描述请求,??但是xml文件不是更大吗?

2,
由于数据库表中的信息只会被查询,不会被修改,所以,我想,可不可以每次运行服务器端的程序时,就将表中的某些经常要被查询的数据保存到一个map中,然后客户端发送请求过来时,直接在map中查找,这样会不会更快呢??这算不算是所谓的缓存??

3,
对于整个系统,有什么建议吗?

...全文
185 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
CHZiroy 2012-11-05
  • 打赏
  • 举报
回复
你好,我遇到这样一个问题,不知道能不能从你这里得到指点 我在服务器写了缓存程序,然后写了一个线程池等待客户端的连接 然后当用1000个客户端请求从服务器下载文件时,部分客户端请求会出现下面这个bug java.net.ConnectException: Connection refused: connect 有时候是客户端进入忙等状态,,, 不知道这些问题你有没有什么经验
引用 3 楼 Haiwer 的回复:
有一定并发量,不修改数据当然需要缓存,你的想法就不错,数据量大的时候可以考虑缓存调度,根据使用频率保留使用过的在缓存 协议的方式实际没有好坏之分,操作方便就可以,如果考虑安全性才会复杂些
haitao 2012-11-02
  • 打赏
  • 举报
回复
协议,二进制和xml正好是2个极端:高效但扩展难,易扩展但开销大
个人主张居中的ini:易扩展且开销低

如果不变,是可以缓存,但是需要一个机制:如果变了,缓存能先更新

用户会修改服务器里的文件?多人改同一个文件怎么处理?
昵称被占用了 2012-11-02
  • 打赏
  • 举报
回复
有一定并发量,不修改数据当然需要缓存,你的想法就不错,数据量大的时候可以考虑缓存调度,根据使用频率保留使用过的在缓存


协议的方式实际没有好坏之分,操作方便就可以,如果考虑安全性才会复杂些
xubxuq 2012-11-01
  • 打赏
  • 举报
回复
没有积分了,借贵帖求助。有一个发票表 fapiao,记录了最近几年的开票数据
发票号 客户代码 开票时间 开票金额
id customer kaipiandate amout
请教,如何实现如下功用:
比如统计2012年9月份的客户开票数据,按开票金额从多到少排列下来,需要显示如下结果

年份 月份 客户代码 开票金额 上个月开票金额 上年度当月(9月)开票金额
2012 9 S001 10000 8000 9000
2012 9 S054 9700 9900 5000
2012 9 S009 7500 8800 10000
starseeker7 2012-11-01
  • 打赏
  • 举报
回复
1:xml只与开发习惯,规范有关,统一的规范有助于后来者的二次开发,
2:你这个算是主动缓存,但如果数据量大上去,对内存压力就大了。这个是一个后续扩展性问题,需要你对需求认真考虑。
3:目前看你的这个东西,需求单一,功能简单,能提的建议并不多。只要保证平凡读取表字段尽可能小,考虑定期分表将低访问率的文件移动到其他地方,扩展性就数据库方面而言并不特别困难。除非你系统的后续业务级别特别大,那是另外一回事。

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧