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库和框架来完成更丰富的应用场景。


本文标签: 元素 对应 类型 方法 集合