admin 管理员组文章数量: 887021
2024年1月18日发(作者:基于linux系统的web服务器搭建)
python调用redis 五大基本类型
Redis是一个支持多种数据结构的内存数据库,其基本数据结构包括五种类型:String、List、Set、Hash和ZSet。这篇文章将介绍这五种数据类型的基本概念、用途以及Python中的调用方法。
一、String类型
String类型是Redis中最基本的数据类型,用于存储单个值,可以是字符串、数字或布尔值。在Python中,我们可以使用redis-py库来操作String类型。
创建一个redis连接:
```python
import redis
r = (host='127.0.0.1', port=6379, db=0)
```
set(key, value)方法可以向Redis中添加一个String类型的数据。
```python
('name', 'Tom')
```
get(key)方法可以获取key对应的value值。
```python
name = ('name')
print(name)
# 输出:b'Tom',这里需要使用b'...'这样的格式,因为redis默认返回二进制值
```
setnx(key, value)方法可以在key不存在时添加一个value值。
```python
('name', 'Jack')
# 因为之前已经有了'name'这个key,所以不会执行插入操作
```
incr(key, amount=1)方法可以将key对应的value值自增amount个单位。
```python
('count', 1)
('count', 2)
print(('count'))
# 输出:b'3'
```
二、List类型
List类型用于存储有序的元素列表,可以从列表的两端插入或删除元素。在Python中,我们可以使用redis-py库来操作List类型。
lpush(key, value)方法可以在key对应的列表左侧插入一个元素。
```python
('fruits', 'apple')
('fruits', 'orange', 'banana')
print(('fruits', 0, -1))
# 输出:[b'banana', b'orange', b'apple']
```
rpush(key, value)方法可以在key对应的列表右侧插入一个元素。
```python
('fruits', 'grape')
print(('fruits', 0, -1))
# 输出:[b'banana', b'orange', b'apple', b'grape']
```
lpop(key)方法可以从key对应的列表左侧删除一个元素并返回该元素。
```python
('fruits')
print(('fruits', 0, -1))
# 输出:[b'orange', b'apple', b'grape']
```
rpop(key)方法可以从key对应的列表右侧删除一个元素并返回该元素。
```python
('fruits')
print(('fruits', 0, -1))
# 输出:[b'orange', b'apple']
```
三、Set类型
Set类型用于存储无序且不重复的元素集合,支持集合间的交、并等操作。在Python中,我们可以使用redis-py库来操作Set类型。
sadd(key, member)方法可以向key对应的集合中添加一个元素。
```python
('colors', 'red', 'green', 'blue')
print(rs('colors'))
# 输出:{b'blue', b'green', b'red'}
```
srem(key, member)方法可以从key对应的集合中删除一个元素。
```python
('colors', 'green')
print(rs('colors'))
# 输出:{b'blue', b'red'}
```
sinter(key1, key2, ...)方法可以求多个集合的交集。
```python
('fruits1', 'banana', 'apple', 'pear')
('fruits2', 'banana', 'orange', 'grape')
print(('fruits1', 'fruits2'))
# 输出:{b'banana'}
```
四、Hash类型
Hash类型用于存储键值对,适合存储对象和JSON等类似结构的数据。在Python中,我们可以使用redis-py库来操作Hash类型。
hset(key, field, value)方法可以向key对应的Hash中添加一个键值对。
```python
('person', 'name', 'Tom')
('person', 'age', 25)
('person', 'gender', 'male')
print(l('person'))
# 输出:{b'name': b'Tom', b'age': b'25', b'gender': b'male'}
```
hget(key, field)方法可以获取key对应的Hash中指定field的值。
```python
name = ('person', 'name')
print(name)
# 输出:b'Tom'
```
hmset(key, mapping)方法可以向key对应的Hash中添加多个键值对。
```python
('book', {'title': 'The Great Gatsby', 'author': 'F. Scott
Fitzgerald', 'year': '1925'})
print(l('book'))
# 输出:{b'title': b'The Great Gatsby', b'author': b'F. Scott
Fitzgerald', b'year': b'1925'}
```
五、ZSet类型
ZSet类型用于存储有序的元素集合,并指定每个元素的分值,可以进行分值范围内的查找和排序。在Python中,我们可以使用redis-py库来操作ZSet类型。
zadd(key, {'member1': score1, 'member2': score2, ...})方法可以向key对应的ZSet中添加多个元素及其分值。
```python
('scoreboard', {'Tom': 80, 'John': 90, 'Mike': 75})
print(('scoreboard', 0, -1, withscores=True))
# 输出:[(b'Mike', 75.0), (b'Tom', 80.0), (b'John', 90.0)]
```
zrange(key, start, end, withscores=False)方法可以获取key对应的ZSet中指定排名范围内的元素,如果指定了withscores=True,则会同时返回元素及其分值。
```python
print(('scoreboard', 0, 1, withscores=True))
# 输出:[(b'Mike', 75.0), (b'Tom', 80.0)]
```
zscore(key, member)方法可以获取key对应的ZSet中指定元素的分值。
```python
score = ('scoreboard', 'John')
print(score)
# 输出:90.0
```
通过以上示例,我们可以看到Python中使用redis-py库调用Redis的五大基本数据类型的方法都比较简单明了,也可以灵活地结合其他Python库和框架来完成更丰富的应用场景。
版权声明:本文标题:python调用redis 五大基本类型 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1705523712h488472.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论