本次python操作redis,对比mysql直接操作。
效果mysql速度更快。
下次我会做一个【python操作redis】与【python操作mysql】对照测试。
python对redis字符串操作效率 vs mysql测试
redis到底有多快,总得有个对照。那么就对照一
先set一万次试试
import redis
import time
start = time.time()
r = redis.Redis(host='localhost', port=6379, decode_responses=True)
for i in range(0,10000):
r.set('SetKey',i)
print(r.get('SetKey'))
end = time.time()
print(end - start)
用时1.97秒
时间消耗其实不少,但是比数据库例如mysql快了很多哦。
如果是【INCR】再试试
import redis
import time
start = time.time()
r = redis.Redis(host='localhost', port=6379, decode_responses=True)
r.set('SetKey',0)
for i in range(0,10000):
r.incr('SetKey')
print(r.get('SetKey'))
end = time.time()
print(end - start)
快了一些有限。
但是也非常不错了。
我电脑性能比较低,如果换成linux服务器的话效果会非常好的。
MySQL一万次添加操作
创建一个试试
CREATE TABLE `redis_test` (
`id` int(8) NOT NULL AUTO_INCREMENT,
`info` int(8) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
存储过程
delimiter $$
create procedure add_info()
begin
declare i int default 0 ;while i<10000 do
INSERT INTO `redis_test` VALUES (0, 1);
set i=i+1;
end while;
end
$$
delimiter ;
调用
call add_info;
确定添加成功,共计用时:0.511s
相对来说看不出来。
但是咱们用大批量测试一下,都加上一个【0】十万次
Python修改redis的set【10万】次
import redis
import time
start = time.time()
r = redis.Redis(host='localhost', port=6379, decode_responses=True)
r.set('SetKey',0)
for i in range(0,100000):
r.incr('SetKey')
print(r.get('SetKey'))
end = time.time()
print(end - start)
python用时20秒
存储过程10万次
CREATE DEFINER=`root`@`localhost` PROCEDURE `add_info`()
begin
declare i int default 0 ;while i<100000 do
INSERT INTO `redis_test` VALUES (0, 1);
set i=i+1;
end while;
end
数据库用时4.3s
好吧,我承认,用Python操作Redis的效率不是很高啊。
后面我会对java使用以及C#使用都做一个测试。
希望能更好的测试出具体的效果。
看热闹的可以点个赞啊。