翼度科技»论坛 编程开发 python 查看内容

Python工具箱系列(二十五)

6

主题

6

帖子

18

积分

新手上路

Rank: 1

积分
18
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下的安装过程如下:
  1. echo deb http://packages.dotdeb.org wheezy all >> dotdeb.org.list
  2. echo deb-src http://packages.dotdeb.org wheezy all >> dotdeb.org.list
  3. sudo mv dotdeb.org.list /etc/apt/sources.list.d
  4. wget -q -O - http://www.dotdeb.org/dotdeb.gpg | sudo apt-key add -
  5. sudo apt-get update
  6. sudo apt-get install -y redis-server
  7. redis-server --daemonize yes
  8. redis-server --version
  9. systemctl status redis-server
复制代码
Redis-python安装与使用
安装包的命令如下:
  1. pip install redis
复制代码
一个简单的示范小程序如下:
  1. import redis
  2. pool = redis.ConnectionPool(host='192.168.0.66', port=6379)
  3. r = redis.Redis(connection_pool=pool)
  4. r.set("boss","zhangsan")
  5. result = r.get("boss")
  6. print(result)
  7. r.set("boss","lisi")
  8. result = r.get("boss")
  9. print(result)
复制代码
在上述例子中,远程打开Redis服务器。并且使用了连接池要避免反复打开、关闭所造成的性能损失。当初次安装时,这个访问过程一般是失败的,原因是Redis默认绑定在127.0.0.1这个回环地址上,不响应来自网卡的访问。为此,需要编辑/etc/redis/redis.conf文件。也可以使用sed一行命令解决问题。
  1. cat /etc/redis/redis.conf |grep bind
  2. # 直接替换
  3. sed -i 's/bind 127.0.0.1/bind 0.0.0.0/g' /etc/redis/redis.conf
  4. cat /etc/redis/redis.conf |grep bind
复制代码
随后重新启动Redis-server即可。

来源:https://www.cnblogs.com/shanxihualu/p/17118695.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具