首页 > 编程语言 >Python工具箱系列(二十五)

Python工具箱系列(二十五)

时间:2023-02-06 14:37:14浏览次数:39  
标签:Python Redis redis apt dotdeb 二十五 org 工具箱 安装

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即可。

标签:Python,Redis,redis,apt,dotdeb,二十五,org,工具箱,安装
From: https://blog.51cto.com/shanxihualu/6039087

相关文章

  • Python工具箱系列(二十四)
    不管多少人黑微软,微软出品的大多数产品都能够深入人心,成为精品。在数据库领域,微软为专业人士提供SQLServer(简称mssql)。为日常办公人士提供Access与Excel这两款数据存储与......
  • OpenCV-Python快速入门(十二):轮廓拟合
    OpenCV-Python快速入门(十二):轮廓拟合​​前言​​​​前提条件​​​​实验环境​​​​轮廓拟合​​​​矩形包围框(cv2.boundingRect())​​​​最小包围矩形框(cv2.minAreaRe......
  • Python中monkey.patch_all()解决协程阻塞问题
    Python全栈工程师核心面试300问深入解析(2020版)----全文预览Python全栈工程师核心面试300问深入解析(2020版)----欢迎订阅直接参考以下实例,采用协程访问三个网站......
  • Python中文编码的问题(UTF-8和CP936的区别)
    Python全栈工程师核心面试300问深入解析(2020版)----全文预览Python全栈工程师核心面试300问深入解析(2020版)----欢迎订阅对于python中中文无法显示,可在首行添加......
  • Python import 上级目录中的模块
    ​​Python全栈工程师核心面试300问深入解析(2020版)----全文预览​​Python全栈工程师核心面试300问深入解析(2020版)----欢迎订阅一般加上这段代码即可imports......
  • python创建virtualenv虚拟环境
    为什么要使用虚拟环境 a、隔离项目之间的第三方包依赖,如A项目依赖django1.2.5,B项目依赖django1.3。  b、为部署应用提供方便,把开发环境的虚拟环境打包到生产环境即可,不......
  • Python爬虫常用的爬虫注意事项及技巧
    Python爬虫常用的爬虫技巧​​1、基本抓取网页​​​​2、使用代理IP​​​​3、Cookies处理​​​​4、伪装成浏览器​​​​5、页面解析​​​​6、验证码的处理​​​​7......
  • Jenkins2+python构建devops流水线demo分享
    #Jenkins2demo@Library('global-shared-library')_pipeline{agent{label'master'}options{disableConcurrentBuil......
  • 跟着廖雪峰学python004
    ​ ​编辑循环Python有两种循环:①for...in循环②while循环dict字典set集合for...in循环依次把list或tuple中的每个元素迭代出来names=['Michael'......
  • 一、python——变量和简单数据类型
    message="helloworld"print(message)message="Let'sgo"print(message)#title()以首字母大写显示每个单词name="zhouyuting"print(name.title())name......