Python工具箱系列(二十五)
Redis是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。Redis是一个nosql数据库。nosql是not-only sql的意思,泛指非关系型数据库。
Redis作为一个内存数据库,特点与优点很多,包括但不限于:
◆性能优秀,数据在内存中,读写速度非常快,支持并发10W QPS。
◆单进程单线程,是线程安全的,采用IO多路复用机制。
◆丰富的数据类型,支持字符串(strings)、散列(hashes)、列表(lists)、集合(sets)、有序集合(sorted sets)等。
◆支持数据持久化。可以将内存中数据保存在磁盘中,重启时加载。
◆主从复制,哨兵,高可用。
◆可以用作分布式锁。
◆可以作为消息中间件使用,支持发布订阅。
与其它nosql数据库(例如mongodb)不同,Redis的定位是作为缓存,存储临时数据和简单的消息队列,这个领域没有强力的竞争对手,Redis一枝独秀。网上对于Redis的教程、讨论非常多,在此不再复述,仅就如何安装与使用python操作Redis进行讨论。
Redis安装
Redis当前最新版本为7.0。稳定版本6.2.2。能够在Linux与MacOS上完美安装,但没有官方支持的Windows版本。虽然有好事者提供了Windows版本,对于大量基于windows平台的开发者而言,合适的途径有:
◆远程Linux服务器或者公有云(阿里云,华为云节点)上安装Redis。
◆本地WSL2/WSL上安装Redis。
◆本地虚拟机上安装Redis。
◆使用docker安装Redis。
基于apt安装,最新的Redis版本是4.0.9。其在ubuntu bionic下的安装过程如下:
echo deb http://packages.dotdeb.org wheezy all >> dotdeb.org.list echo deb-src http://packages.dotdeb.org wheezy all >> dotdeb.org.list sudo mv dotdeb.org.list /etc/apt/sources.list.d wget -q -O - http://www.dotdeb.org/dotdeb.gpg | sudo apt-key add - sudo apt-get update sudo apt-get install -y redis-server redis-server --daemonize yes redis-server --version systemctl status redis-server
Redis-python安装与使用
安装包的命令如下:
pip install redis
一个简单的示范小程序如下:
import redis pool = redis.ConnectionPool(host='192.168.0.66', port=6379) r = redis.Redis(connection_pool=pool) r.set("boss","zhangsan") result = r.get("boss") print(result) r.set("boss","lisi") result = r.get("boss") print(result)
在上述例子中,远程打开Redis服务器。并且使用了连接池要避免反复打开、关闭所造成的性能损失。当初次安装时,这个访问过程一般是失败的,原因是Redis默认绑定在127.0.0.1这个回环地址上,不响应来自网卡的访问。为此,需要编辑/etc/redis/redis.conf文件。也可以使用sed一行命令解决问题。
cat /etc/redis/redis.conf |grep bind # 直接替换 sed -i 's/bind 127.0.0.1/bind 0.0.0.0/g' /etc/redis/redis.conf cat /etc/redis/redis.conf |grep bind
随后重新启动Redis-server即可。