Python操作Redis数据库的超详细教程
Redis是什么
Redis是一种使用内存作为数据存储方式的开源键值对(key-value)数据库,具有高速读/写、多种数据结构支持、持久化、集群等功能。由于其在互联网应用中广泛使用,因此成为了后端领域中的热门技术之一!
Redis安装
Redis官网提供了Windows和Linux等多种版本的Redis安装包,可以根据自己的系统选择对应版本进行下载。
同时也可以使用Linux的包管理器进行安装,如在Ubuntu下使用apt-get命令进行安装
sudo apt-get install redis-server
Python安装Redis模块
Python来操作Redis需要借助Redis模块,可以使用pip进行安装。
pip install redis
连接Redis
使用Redis模块中的StrictRedis对象进行连接,连接成功后可以进行相关操作。以下是连接Redis的示例代码:
import redis
redis_conn = redis.StrictRedis(host='localhost', port=6379, db=0, decode_responses=True)
redis_conn.ping()
其中host为Redis的主机名,port为Redis的端口,默认6379,db为Redis的数据库序号,默认为0,decode_responses参数设为True时会将Redis返回的结果从bytes类型转为字符串类型。
以上代码中通过调用ping函数进行连接测试,返回pong则连接成功。
Redis数据类型
Redis支持五种数据类型:String、List、Set、Hash和Zset。
1. String类型
String即字符串类型,可以存储任何文本数据类型,如字符串、数字等。
以下是String类型的操作示例:
存储String类型的数据:
redis_conn.set('name', 'Tom')
获取String类型的数据:
redis_conn.get('name')
2. List类型
List即列表类型,可以存储一组数据,数据按照插入顺序排列,支持从两端进行插入和删除操作,支持在指定位置进行插入和删除操作。
以下是List类型的操作示例:
存储List类型数据:
redis_conn.rpush('language', 'Python', 'Java', 'C++')
获取List类型数据:
redis_conn.lrange('language', 0, -1)
3. Set类型
Set即集合类型,可以存储一组无序的、唯一的数据。
以下是Set类型的操作示例:
存储Set类型数据:
redis_conn.sadd('fruits', 'apple', 'banana', 'orange')
获取Set类型的数据:
redis_conn.smembers('fruits')
4. Hash类型
Hash即哈希类型,可以存储一个字段名和值之间的映射表。适合存储对象类型。
以下是Hash类型的操作示例:
存储Hash类型数据:
redis_conn.hmset('person', {'name': 'Tom', 'age': 18, 'gender': 'male'})
获取Hash类型数据:
redis_conn.hgetall('person')
5. Zset类型
Zset即有序集合类型,可以存储多个成员,并且每个成员都会关联一个分数,分数用来按照从小到大的顺序对成员进行排序。
以下是Zset类型的操作示例:
存储Zset类型数据:
redis_conn.zadd('student', {'Tom': 90, 'Jerry': 80, 'Marry': 95})
获取Zset类型数据:
redis_conn.zrange('student', 0, -1, withscores=True)
Redis操作
1. 判断key存在
可以使用Redis的exists函数判断支持是否存在:
redis_conn.exists('name')
2. 删除key
可以使用Redis的delete函数删除指定的key:
redis_conn.delete('name')
3. 设置key的过期时间
可以使用Redis的expire函数设置key的过期时间:
redis_conn.expire('name', 60)
4. 获取key的过期时间
可以使用Redis的ttl函数获取key的过期时间:
redis_conn.ttl('name')
5. 订阅与发布
可以使用Redis的publish函数进行消息的发布,使用Redis的subscribe函数进行消息的订阅。
以下是订阅与发布的示例代码:
def sub_callback(data):
print('Received message: ' + str(data['data']))
redis_sub = redis_conn.pubsub()
redis_sub.subscribe(**{'channel': sub_callback})
redis_conn.publish('channel', 'hello world')
在以上代码中,使用redis_conn.pubsub()创建了redis对象,并使用redis_sub.subscribe()函数进行订阅操作,接收到消息后调用sub_callback函数进行处理,使用redis_conn.publish()函数进行消息的发布。
总结
本篇文章介绍了Redis的基础知识、安装方式、相关模块的安装方式、连接方式、数据类型、常用操作以及订阅与发布等内容,并提供了多个实例供读者参考,希望读者可以通过此文了解Redis的使用方式,进行相关操作。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python操作Redis数据库的超详细教程 - Python技术站