xq8995209 发表于 2018-8-8 06:00:22

简单示例python操作memcache-Slevin

  最近闲来蛋疼,看见众人都在玩python,于是自己也没事看了看,搞出一个简单的小脚本。俺是python新手,如果有很多地方 不规范或者有错误,请指出!
  mysql和memcache的安装我就不说了,网上大把教程
  首先看表结构
  


[*]CREATE TABLE `slevin` (
[*]`id` int(5) NOT NULL DEFAULT '0',
[*]`name` char(10) DEFAULT NULL,
[*]PRIMARY KEY (`id`)
[*]) ENGINE=InnoDB DEFAULT CHARSET=latin1
  查看表的内容

[*]mysql> select * from slevin;
[*]+----+------+
[*]| id | name |
[*]+----+------+
[*]|1 | o    |
[*]|2 | h    |
[*]|3 | c    |
[*]|4 | d    |
[*]|5 | e    |
[*]|6 | f    |
[*]|7 | a    |
[*]|8 | b    |
[*]|9 | c    |
[*]| 10 | d    |
[*]| 11 | e    |
[*]| 12 | f    |
[*]+----+------+
[*]12 rows in set (0.00 sec)
  以下是python操作memcache的脚本

[*]importMySQLdb, memcache, hashlib
[*]import MySQLdb.cursors
[*]#建立一个简单hash算法函数
[*]def hash(obj):
[*]    m=hashlib.md5()
[*]    m.update(obj)
[*]    key=m.hexdigest()
[*]    return key
[*]#返回字典式的元组(cursorclass = MySQLdb.cursors.DictCursor)
[*]conn = MySQLdb.connect (host = "192.168.1.254",user = "root",passwd = "000000",db = "test",cursorclass = MySQLdb.cursors.DictCursor)
[*]mc = memcache.Client(['192.168.1.254:11211'],debug=0)
[*]#cursor = conn.cursor ()
[*]two=conn.cursor ()
[*]two.execute ("select * from slevin")
[*]row=two.fetchall()
[*]#mc.flush_all()
[*]if not mc.get(hash("slevin2")):
[*]    for i in row:
[*]      #用HASH(表名+id值)做为KEY,把一行的记录存储到一个key里面
[*]      tabname='slevin'
[*]      tabname=tabname+str(i.values())
[*]      mc.add(hash(tabname),i)
[*]      #print mc.get(hash(tabname))
[*]else:
[*]    value=mc.get(hash("slevin2"))
[*]    for key in value.keys():
[*]      print "%s is %s" %(key,value)
[*]mc.disconnect_all()
[*]cursor.close ()
[*]conn.close ()
  
页: [1]
查看完整版本: 简单示例python操作memcache-Slevin