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下的安装过程如下:
Redis-python安装与使用
安装包的命令如下:
一个简单的示范小程序如下:
在上述例子中,远程打开Redis服务器。并且使用了连接池要避免反复打开、关闭所造成的性能损失。当初次安装时,这个访问过程一般是失败的,原因是Redis默认绑定在127.0.0.1这个回环地址上,不响应来自网卡的访问。为此,需要编辑/etc/redis/redis.conf文件。也可以使用sed一行命令解决问题。
随后重新启动Redis-server即可。