python-redis的安装和连接

原创
2017/11/24 23:13
阅读数 652

 

1、 Redis 简介

 

Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。

Redis 与其他 key - value 缓存产品有以下三个特点:

Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。

Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。

Redis支持数据的备份,即master-slave模式的数据备份。

 

 

 

 

 

2、 Redis 的安装

 

Redis的安装

Redis一般都是安装在linux系统中,具体安装步骤如下:

#cd /usr/local/src

#wget http://download.redis.io/releases/redis-3.0.1.tar.gz

#tar xzf redis-3.0.1.tar.gz

#cd redis-3.0.1

#make

#src/redis-server &

检查redis是否正常启动

Ps –ef |grep redis

Netstat –lnp |grep 6379

 

安装redis的客户端

Pip install redis

 

 

 

 

3、 Redis连接池

#redis连接测试

import redis
#redis连接测试
redis_config = {"host" : "192.*.*.*",
                "port" : 6379,
                "password" : "passwd"}
# r = redis.Redis(host="192.186.7.158",port=6379)
r = redis.Redis(**redis_config)
#set 操作,第一个参数是key,第二个参数是value
r.set("null", "you are so good!")
r.set("new", "test!!!")
#r.keys就是获取到所有的key
print(r.keys())
#r.get获取到key 的值
print(r.get("null"))

结果:

['new', 'null',]

you are so good!

 

 

#redis连接池

#redis连接池
def get_redis_connect():
    redis_config = {"host": "192.**.*",
                    "port": 6379,
                    "password": "passwd",
                    "db": 0}
    pool = redis.ConnectionPool(**redis_config)
    r = redis.Redis(connection_pool=pool)
    return r
if __name__ == "__main__":
    r = get_redis_connect()
    r.set("pool", "new pool!!!")
    print(r.get("pool"))

结果:

new pool!!!

 

 

4、 Redis 管道

 

#测试管道跟普通连接的效率差

#测试管道跟普通连接的效率差

import datetime
import redis


def withpipe(r):
    pipe = r.pipeline(transaction=True)
    for i in xrange(1, 1000):
        key = "test1" +str(i)
        value = "test1" + str(i)
        pipe.set(key, value)
    pipe.execute()


def withoutpipe(r):
    # pipe = r.pipeline(transaction=True)
    for i in xrange(1, 1000):
        key = "test1" + str(i)
        value = "test1" + str(i)
        r.set(key, value)

if __name__ == "__main__":
    pool = redis.ConnectionPool(host="192.*.*.*", port=6379, password="passwd", db=0)
    r1 = redis.Redis(connection_pool=pool)
    r2 = redis.Redis(connection_pool=pool)
    start = datetime.datetime.now()
    print(start)
    withpipe(r1)
    end = datetime.datetime.now()
    print((end-start).microseconds)
    print(end-start)
    t_time = (end - start).microseconds
    print("withpipe time is : {0}".format(t_time))

    start = datetime.datetime.now()
    withoutpipe(r2)
    end = datetime.datetime.now()
    t_time = (end - start).microseconds
    print("withoutpipe time is : {0}".format(t_time))

结果:

#单位:微秒

withpipe time is : 353000

withoutpipe time is : 553000

 

 

 

 

 

 

 

 

 

 

 

 

 

 

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部