【python】Redis介绍及简单使用

一、redis

  redis是一个key-value存储系统。和 Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、 list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是 原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性 的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

  Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Python,Ruby,Erlang,PHP客户端,使用很方便,Redis支持主从同步。数据可 以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。这使得Redis可执行单层树复制。从盘可以有意无意的对数据进行 写操作。由于完全实现了发布/订阅机制,使得从数据库在任何地方同步树时,可订阅一个频道并接收主服务器完整的消息发布记录。

二、python操作redis

1、连接方式

  redis-py提供两个类Redis和StrictRedis用于实现Redis的命令,StrictRedis用于实现大部分官方的命令,并使用官方的语法和命令,Redis是StrictRedis的子类


1

2

3

4

5

6

7

#!/usr/bin/env python

# -*- coding:utf-8 -*-

import redis

r = redis.Redis(host=‘192.168.0.110‘, port=6379,db=0)

r.set(‘name‘, ‘zhangsan‘)   #添加

print (r.get(‘name‘))   #获取

2、连接池

  redis- py使用connection pool来管理对一个redis server的所有连接,避免每次建立、释放连接的开销。默认,每个Redis实例都会维护一个自己的连接池。可以直接建立一个连接池,然后作为参数 Redis,这样就可以实现多个Redis实例共享一个连接池。


1

2

3

4

5

6

7

8

#!/usr/bin/env python

# -*- coding:utf-8 -*-

import redis

pool = redis.ConnectionPool(host=‘192.168.0.110‘, port=6379)

r = redis.Redis(connection_pool=pool)

r.set(‘name‘, ‘zhangsan‘)   #添加

print (r.get(‘name‘))   #获取

3、发布和订阅

首先定义一个RedisHelper类,连接Redis,定义频道为monitor,定义发布(publish)及订阅(subscribe)方法。


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

#!/usr/bin/env python

#-*- coding:utf-8 -*-

import redis

class RedisHelper(object):

    def __init__(self):

        self.__conn = redis.Redis(host=‘192.168.0.110‘,port=6379)#连接Redis

        self.channel = ‘monitor‘ #定义名称

    def publish(self,msg):#定义发布方法

        self.__conn.publish(self.channel,msg)

        return True

    def subscribe(self):#定义订阅方法

        pub = self.__conn.pubsub()

        pub.subscribe(self.channel)

        pub.parse_response()

        return pub

发布者


1

2

3

4

5

6

7

#!/usr/bin/env python

# -*- coding:utf-8 -*-

#发布

from RedisHelper import RedisHelper

obj = RedisHelper()

obj.publish(‘hello‘)#发布

订阅者


1

2

3

4

5

6

7

8

9

10

11

#!/usr/bin/env python

# -*- coding:utf-8 -*-

#订阅

from RedisHelper import RedisHelper

obj = RedisHelper()

redis_sub = obj.subscribe()#调用订阅方法

while True:

    msg= redis_sub.parse_response()

    print (msg)

时间: 2024-08-26 12:21:27

【python】Redis介绍及简单使用的相关文章

Python排序介绍

Python排序介绍 本文简单记录了Python中的内建函数 sort() 和 sorted() 的使用方法,以及它们在 Python2 和 Python3 中的区别. 概述 内建函数 sort() 和 sorted() 都可以对一个List进行排序,它们的区别是,sort 对 List 本身进行排序(sorts the list in place),没有返回,而 sorted 会返回经过排序后的 list.两者的参数一样,所进行的排序都是稳定的. >>> l = [2, 4, 6, 1

消息队列介绍、RabbitMQ&Redis的重点介绍与简单应用

消息队列介绍.RabbitMQ.Redis 一.什么是消息队列 这个概念我们百度Google能查到一大堆文章,所以我就通俗的讲下消息队列的基本思路. 还记得原来写过Queue的文章,不管是线程queue还是进程queue他都是一种消息队列.他都是基于生产者消费者模型来处理消息. Python中的进程queue,是用于父进程与子进程,或者同属于一个父进程下的多个子进程之间进行信息交互.注意这种queue只能在同一个python程序下才能用,如果两个python程序,或者Python和别的什么程序,

Python常用的库简单介绍一下

Python常用的库简单介绍一下fuzzywuzzy ,字符串模糊匹配. esmre ,正则表达式的加速器. colorama 主要用来给文本添加各种颜色,并且非常简单易用. Prettytable 主要用于在终端或浏览器端构建格式化的输出. difflib ,[Python]标准库,计算文本差异 . Levenshtein ,快速计算字符串相似度. Chardet 字符编码探测器,可以自动检测文本.网页.xml的编码. shortuuid ,一组简洁URL/UUID函数库. ftfy ,Uni

进击的Python【第十二章】:mysql介绍与简单操作,sqlachemy介绍与简单应用

进击的Python[第十二章]:mysql介绍与简单操作,sqlachemy介绍与简单应用 一.数据库介绍 什么是数据库? 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据.我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢.所以,现在我们使用关系型数据库管理系统(RDBMS)来存储和管理的大数据量.所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来

python redis 实现简单的消息订阅

python + redis 实现简单的消息订阅 订阅端 import redis from functools import wraps class Subscribe: def __init__(self, channel: str, **kwargs): self.coon = redis.StrictRedis(**kwargs) self.channel = channel self.registerd = list() self.course = self.coon.pubsub()

redis数据库的简单介绍

NoSQL:一类新出现的数据库(not only sql) 泛指非关系型的数据库 不支持SQL语法 存储结构跟传统关系型数据库中的那种关系表完全不同,nosql中存储的数据都是KV形式 NoSQL的世界中没有一种通用的语言,每种nosql数据库都有自己的api和语法,以及擅长的业务场景 NoSQL中的产品种类相当多: Mongodb Redis Hbase hadoop Cassandra hadoop NoSQL和SQL数据库的比较: 适用场景不同:sql数据库适合用于关系特别复杂的数据查询场

python+redis简单实现发红包程序

redis是什么? Redis 是一个高性能的key-value数据库! 想进一步了解请移步搜索引擎自行查找. 编写这个小程序的目的就是对redis进行一个简单的小操作,对redis有一个初步的了解,并未有什么高大尚的骚操作,适合小白阅读. 程序共分为三个部分. 1.创建红包 2.将红包存储到数据库 3.取出红包 1.创建红包 首先需要确定创建红包需要哪些参数. 1.红包的最小金额0.01 2.红包的数量 3.红包总金额 4.红包需要一个ID号(存储数据库的时候需要使用) 5.每个红包的金额 1

redis介绍、主从配置

NoSQL之redis介绍: remote rerictionry server 是一个基于key-value键值对的持久化数据库存储系统,redis和memcached缓存服务很像. 但是redis支持的数据存储类型更丰富,包括string.list.set.和zset等,这些数据类型都支持push/pop.add/remove 及取交集.并集和差集及更丰富的操作,而且这些操作都是原子性的.在此基础上,redis支持各种不同方式的排序. 与memcached缓存服务一样,为了保证效率,数据都是

转:Redis介绍及常用命令大全

一 Redis介绍 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.从2010年3月15日起,Redis的开发工作由VMware主持. Redis能运行在大多数POSIX(Linux, *BSD, OS X 和Solaris等)系统上,官方没有支持Windows的版本.目前最新的版本是2.2.11,这个版本主要是修复了一个2.2.7版本中遍历方式优化带来的一个bug. 和普通的Key-Value结构不同,R