Redis系列教学掌握使用全新技术(redis系列教学)
Redis系列教学:掌握使用全新技术
Redis是一个高性能的开源键值对数据库。它能够支持各种数据结构,如 字符串,哈希,列表,集合,有序集合等等。它的特点是速度快、内存占用少、可扩展性强、功能强大、数据持久化等等。
Redis入门
Redis虽说好用,但也是要学的。下面我们来学习一下Redis基本操作。
– 连接Redis
“`python
import redis
r = redis.StrictRedis(host=’localhost’, port=6379, db=0)
这里的host、port、db分别是Redis的服务器地址、端口、选择的数据库。默认的话,Redis服务器地址是localhost,端口是6379,选择第0个数据库。
- Redis的基本数据类型
Redis支持多种数据结构,包括string(字符串)、hash(哈希)、list(列表)、set(集合)和zset(有序集合)。
**字符串(string)**
```pythonr.set('name', 'Tom')
print(r.get('name'))# 输出Tom
这里,我们先使用set()函数将一个键值对写入Redis中。然后使用get()函数将键对应的值读出来。
**哈希(hash)**
“`python
r.hset(‘student’, ‘name’, ‘Tom’)
r.hset(‘student’, ‘age’, 20)
print(r.hgetall(‘student’))
# 输出{b’name’: b’Tom’, b’age’: b’20’}
哈希类型的数据存放形式为dict形式。同样,我们使用hset()函数将多个键值对写入哈希中,使用hgetall()函数将哈希中的所有键值对读出来。
**列表(list)**
```pythonr.lpush('name_list', 'Tom')
r.lpush('name_list', 'Bob')r.lpush('name_list', 'Alice')
print(r.lrange('name_list', 0, -1))# 输出[b'Alice', b'Bob', b'Tom']
列表类型的数据存放形式为一个序列。我们使用lpush()函数在列表的头部插入元素。lrange()函数读取列表中的元素。
**集合(set)**
“`python
r.sadd(‘name_set’, ‘Tom’)
r.sadd(‘name_set’, ‘Bob’)
r.sadd(‘name_set’, ‘Alice’)
print(r.smembers(‘name_set’))
# 输出{b’Tom’, b’Bob’, b’Alice’}
集合类型的数据存放形式为一个没有重复元素的无序集合。我们使用sadd()函数在集合中添加元素。smembers()函数读取集合中的所有元素。
**有序集合(zset)**
```pythonr.zadd('name_zset', {'Tom':1, 'Bob':2, 'Alice':3})
print(r.zrange('name_zset', 0, -1, withscores=True))# 输出[(b'Tom', 1.0), (b'Bob', 2.0), (b'Alice', 3.0)]
有序集合类型的数据存放形式为一个排序的无重复元素集。元素存放的顺序是根据score(元素的属性)来决定的。我们使用zadd()函数在有序集合中添加元素。zrange()函数读取有序集合的排名情况。
这就是Redis的基本操作了。大概地学习一下,你就能够进行Redis中的基本数据操作了。
Redis的高级应用
Redis不仅有基础操作,还有些高级应用。
1. 发布-订阅(Pub/Sub)
Redis的发布-订阅功能是在频道上进行广播。当一个客户端发布消息到一个频道上时,所有订阅在这个频道上的客户端都会接收到这条消息。我们可以使用publish()函数向特定的频道上发布一条消息,使用subscribe()函数进行特定频道的订阅。
2. 事务
Redis的事务起始于MULTI命令,即指示Redis开始事务的命令。随后,可以添加任意多个命令到一个事务中。在事务中执行的所有命令都不会被立即执行。一旦在事务中执行所有的命令,可以使用EXEC命令执行事务中的所有命令。我们可以使用watch()函数监视某个键值对,使用multi()函数开启事务,使用exec()函数执行事务。
3. 可持久化
在Redis中,数据对于我们来说都存在内存中。当Redis进程停止时,数据也会随着Redis进程的结束而被清除。这就是Redis的内存数据库的缺点。我们可以使用Redis的持久化功能来解决这个问题。Redis支持两种持久的方式。一种是快照,一种是AOF(append-only file)。我们可以通过配置文件中的save选项调整Redis进行定时快照,或者打开AOF功能来实现持久化。