- 主题:一个hash表在硬盘上,用户每次请求难道都要把它调到内存中
其实即使你每次都是从硬盘读,假如你不做写操作的话,且内容比较少的话,好像也是默
认内存的。。
在应用层面实现,可以用mc/redis。
在语言层面的化,譬如php有yac和apc。这样的可以考虑。
【 在 yuhao1982 (inspiration) 的大作中提到: 】
: 这个web应用需要这个不变的Hashtable, 但客户端请求是频繁的,我怎么把它保存在
内存中就一次,然后每次请求都用这个内存中的hashtable, 而不是每次请求servlet都
要把它从硬盘调到内存?
--
FROM 61.135.152.*
那还是一张表,key是user_id,value是对象,比如user_class
请求里传入user_id就可以查询从已经加载到内存的map里得到value了
【 在 yuhao1982 (inspiration) 的大作中提到: 】
: 对,其实意思本质是差不多。一个表是指对所有的用户都一样的,跟用户无关,这个我知道怎么弄了。那现在肯定有很多用户访问,比如电商网站,每个用户访问都有自己的个人数据,买了什么商品记录等,我想问有一个servlet处理的时候针对请求的用户要访问它的个人数据,每请求一次都要处理它的个人数据(就是我说的每个人都有一个表),那肯定是要先放到内存,而不是每次都要从硬盘读起
--
FROM 221.222.151.*
memcache和redis这种貌似对lz来说有点玩大了
【 在 hellomykitty (藥桑|支持兴业党) 的大作中提到: 】
: 其实即使你每次都是从硬盘读,假如你不做写操作的话,且内容比较少的话,好像也是默
: 认内存的。。
: 在应用层面实现,可以用mc/redis。
: ...................
--
FROM 221.222.151.*
那么再提供个方案,
不大的话可以将文件打到/dev/shm,然后定期维护这个内存当中的文件。
【 在 freeasyman (小胖孩) 的大作中提到: 】
: memcache和redis这种貌似对lz来说有点玩大了
起个标准配置的这两东西也不算复杂,顺手有一个缓存环境对web应用好处真心太大。
--
FROM 111.204.254.*
是的,知道了。还有一种方法是不是可以用session?
【 在 freeasyman 的大作中提到: 】
: 那还是一张表,key是user_id,value是对象,比如user_class
: 请求里传入user_id就可以查询从已经加载到内存的map里得到value了
--
FROM 111.132.228.*
你需要先把数据保存在一个地方,其他地方都能访问,可以是数据库,可以是内存(静态变量等),数据是key-value的,然后针对不同的请求,通过key获取value,为了让服务器知道你是哪个value,你得先告诉它你的key,可以把key存cookie或者session里,甚至保存在url参数里(每次请求都要传),不过为了保证效率和保密性,都会加密存cookie。
【 在 yuhao1982 的大作中提到: 】
: 这个web应用需要这个不变的Hashtable, 但客户端请求是频繁的,我怎么把它保存在内存中就一次,然后每次请求都用这个内存中的hashtable, 而不是每次请求servlet都要把它从硬盘调到内存?
: --
: FROM 111.132.228.*
--来自微水木3.2.0
--
FROM 123.114.35.*
放memcache呗,哪那么多事
【 在 yuhao1982 (inspiration) 的大作中提到: 】
: 对,其实意思本质是差不多。一个表是指对所有的用户都一样的,跟用户无关,这个我知道怎么弄了。那现在肯定有很多用户访问,比如电商网站,每个用户访问都有自己的个人数据,买了什么商品记录等,我想问有一个servlet处理的时候针对请求的用户要访问它的个人数据,每请
--
FROM 113.92.219.*
memcache大小均玩啊,一行代码的事,多方便
【 在 freeasyman (小胖孩) 的大作中提到: 】
: memcache和redis这种貌似对lz来说有点玩大了
--
FROM 124.127.69.*
session解决的是传key,不是解决把表加载到内存
不过不建议用session,处理不好非常吃内存
【 在 yuhao1982 (inspiration) 的大作中提到: 】
: 是的,知道了。还有一种方法是不是可以用session?
--
FROM 221.222.151.*