使用memcached是一个什么样的原理
答案:1 悬赏:70 手机版
解决时间 2021-02-23 04:53
- 提问者网友:城市野鹿
- 2021-02-22 14:36
使用memcached是一个什么样的原理
最佳答案
- 五星知识达人网友:北城痞子
- 2021-02-22 14:46
Memcached处理的原子是每一个(key,value)对(以下简称kv对),key会通过一个hash算法转化成hash-key,便于查找、对比以及做到尽可能的散列。同时,memcached用的是一个二级散列,通过一张大hash表来维护。
Memcached有两个核心组件组成:服务器端(server)和客户端(client),在一个memcached的查询中,client先通过计算key的hash值来确定kv对所处在的server位置。当server确定后,客户端就会发送一个查询请求给对应的server,让它来查找确切的数据。因为这之间没有交互以及多播协议,所以memcached交互带给网络的影响是最小化的。雷达下载更详细。
举例说明:考虑以下这个场景,有三个client分别是c1,c2,c3,还有三个ms分别是s1,s2,s3:
设置kv对
c1想设置key=”com”,value=”iQiyi”
c1拿到server列表,并对key做hash转化,根据hash值确定kv对所存的server位置
s2被选中了
c1连接上s2,s2收到请求,把(key=”com”,value=”iQiyi”)存了起来
获取kv对
c3想得到key=”com”的value
c3用相同的hash算法算出hash值,并确定key=”aa”的值存在s2上
c3连接上s2,并从s2那边得到value=”iQiyi”
其他任何从c1,c2,c3的想得到key=”com”的值的请求都会发向s2
Memcached有两个核心组件组成:服务器端(server)和客户端(client),在一个memcached的查询中,client先通过计算key的hash值来确定kv对所处在的server位置。当server确定后,客户端就会发送一个查询请求给对应的server,让它来查找确切的数据。因为这之间没有交互以及多播协议,所以memcached交互带给网络的影响是最小化的。雷达下载更详细。
举例说明:考虑以下这个场景,有三个client分别是c1,c2,c3,还有三个ms分别是s1,s2,s3:
设置kv对
c1想设置key=”com”,value=”iQiyi”
c1拿到server列表,并对key做hash转化,根据hash值确定kv对所存的server位置
s2被选中了
c1连接上s2,s2收到请求,把(key=”com”,value=”iQiyi”)存了起来
获取kv对
c3想得到key=”com”的value
c3用相同的hash算法算出hash值,并确定key=”aa”的值存在s2上
c3连接上s2,并从s2那边得到value=”iQiyi”
其他任何从c1,c2,c3的想得到key=”com”的值的请求都会发向s2
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯