博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
对Python-memcache分布式散列和调用的实现
阅读量:6329 次
发布时间:2019-06-22

本文共 1252 字,大约阅读时间需要 4 分钟。

煮酒品茶:对python-memcache进行学习,把分布式HASH算法加进去,不说线上自己玩玩的程序可以加到里面去。memcached读存数据就这些东西,看着补。

分布式一致性HASH算法:memcache_ring.py

#coding:utf8import hash_ringimport memcachememcache_servers = [        '127.0.0.1:11211']weights = {        '127.0.0.1:11211':1}ring = hash_ring.HashRing(memcache_servers,weights)#if value is null then get else setdef mc(key,value="Null-0"):    server_node = ring.get_node(key)    mc = memcache.Client([server_node],debug=1)    if value == "Null-0":        return mc.get(key)    else:        return mc.set(key,value)

一致性hash读取数据:

从数据库中读取数据

sql:

可利用起来的程序,稍改动加一些try之类的就可以用到自己的程序玩了。else下key =str(hash(sql))可以去掉。不知道为啥不好册。

#coding:utf8from memcache_ring import mcimport MySQLdb#如果在memcache中就不查数据库,不在就取出来并存一份sql = "select * from zwhset where id=100"key = str(hash(sql))#查数据库def select_sql(sql):    conn = MySQLdb.connect(host="localhost",user="root",passwd="",db="test",charset="utf8")    cursor = conn.cursor()    cursor.execute(sql)    value = cursor.fetchall()    #如果没有查到数据,则原值返回    if not value:        return value    else:        key = str(hash(sql))        #把存储的结果给调用程序        return mc(key,value)#读数据,先看memcached里有没有,有就直接返回memcached查的值,没有就查数据库,#如果数据库也返回空的话原值返回,如果有值就写memcached,然后把value返回if not mc(key):    select_sql(sql)else:    mc(key)

转载地址:http://cqyoa.baihongyu.com/

你可能感兴趣的文章
60 Permutation Sequence
查看>>
主流的RPC框架有哪些
查看>>
Hive学习之路 (七)Hive的DDL操作
查看>>
[转]mysql使用关键字作为列名的处理方式
查看>>
awesome go library 库,推荐使用的golang库
查看>>
树形展示形式的论坛
查看>>
jdbcTemplate 调用存储过程。 入参 array 返回 cursor
查看>>
C++中的stack类、QT中的QStack类
查看>>
Linux常用基本命令[cp]
查看>>
CSS 相对|绝对(relative/absolute)定位系列(一)
查看>>
关于 Nginx 配置 WebSocket 400 问题
查看>>
Glide和Govendor安装和使用
查看>>
Java全角、半角字符的关系以及转换
查看>>
Dubbo和Zookeeper
查看>>
前端项目课程3 jquery1.8.3到1.11.1有了哪些新改变
查看>>
UOJ#179. 线性规划(线性规划)
查看>>
整合spring cloud云架构 - SSO单点登录之OAuth2.0登录认证(1)
查看>>
Isolation Forest原理总结
查看>>
windows的服务中的登录身份本地系统账户、本地服务账户和网络服务账户修改
查看>>
JAVA中循环删除list中元素的方法总结
查看>>