Redis是一款高性能的key-value存储数据库,常用于缓存、分布式锁、计数器等应用场景。在Redis中,提供了丰富的API操作,本文将详细介绍Redis常用的API操作。
1.连接操作
连接Redis之前,需要通过`redis.StrictRedis`类创建一个连接对象,然后才可以对Redis进行各种操作。
1.1.创建连接对象
通过`redis.StrictRedis`类创建一个连接对象。
import redis
r = redis.StrictRedis(host='localhost', port=6379, db=0)
其中参数含义如下:
- host:Redis服务器地址,默认为127.0.0.1。
- port:Redis服务器端口,默认为6379。
- db:Redis数据库编号,默认为0。
1.2.测试连接状态
使用`ping()`方法测试Redis服务器是否可用。
>>> r.ping()
True
返回值为`True`表示连接成功,否则连接失败。
2.字符串操作
Redis中最简单的数据结构就是字符串了,可以通过字符串操作API来设置、获取、删除字符串。
2.1.设置字符串
使用`set(name, value, ex=None, px=None, nx=False, xx=False)`方法设置一个字符串。
>>> r.set('name', 'Tom')
True
其中:
- name:键名,类型为字符串。
- value:键值,类型为字符串或二进制。
- ex:过期时间(秒)。
- px:过期时间(毫秒)。
- nx:若设置为True,表示只有name不存在时才能设置成功。
- xx:若设置为True,表示只有name存在时才能设置成功。
2.2.获取字符串
使用`get(name)`方法获取一个字符串。
>>> r.get('name')
b'Tom'
2.3.删除字符串
使用`delete(*names)`方法删除一个或多个键。
>>> r.delete('name')
1
返回值为删除的键的数量。
3.哈希操作
哈希是存储键值对的一种数据结构,其中键和值都是字符串类型。Redis提供了多种哈希操作API,方便使用者对哈希进行增删改查操作。
3.1.设置哈希值
使用`hset(name, key, value)`方法设置哈希值。
>>> r.hset('user', 'name', 'Tom')
1
其中:
- name:哈希表名,类型为字符串。
- key:键名,类型为字符串。
- value:键值,类型为字符串或二进制。
3.2.获取哈希值
使用`hget(name, key)`方法获取哈希值。
>>> r.hget('user', 'name')
b'Tom'
3.3.获取所有哈希值
使用`hgetall(name)`方法获取哈希表中所有键值对。
>>> r.hgetall('user')
{b'name': b'Tom'}
3.4.删除哈希值
使用`hdel(name, *keys)`方法删除哈希表中一个或多个键值对。
>>> r.hdel('user', 'name')
1
4.列表操作
列表是Redis中常用的数据结构之一,可以用来存储一系列有序的值,同时Redis提供了多种列表操作API,可以方便地进行增删改查操作。
4.1.插入列表元素
使用`lpush(name, *values)`方法向列表左端插入一个或多个元素。
>>> r.lpush('list', 'a', 'b', 'c')
3
其中:
- name:列表名,类型为字符串。
- values:要插入的元素,可以是多个,类型为字符串或二进制。
4.2.获取列表元素
使用`lrange(name, start, end)`方法获取列表中指定范围内的元素。
>>> r.lrange('list', 0, -1)
[b'c', b'b', b'a']
其中:
- name:列表名,类型为字符串。
- start:起始索引位置(包括该位置)。
- end:结束索引位置(包括该位置)。
4.3.删除列表元素
使用`lrem(name, value, num=0)`方法删除列表中指定元素。
>>> r.lrem('list', 'a')
1
其中:
- name:列表名,类型为字符串。
- value:要删除的元素,类型为字符串或二进制。
- num:删除数量,当num为0时表示删除所有。
5.集合操作
集合是Redis中的一种无序、排重的数据结构,类似于数学中的集合概念。Redis提供了多种集合操作API,可以方便地进行增删改查操作。
5.1.添加集合元素
使用`sadd(name, *values)`方法向集合中添加一个或多个元素。
>>> r.sadd('set', 'a', 'b', 'c')
3
其中:
- name:集合名,类型为字符串。
- values:要添加的元素,可以是多个,类型为字符串或二进制。
5.2.获取集合元素
使用`smembers(name)`方法获取集合中所有元素。
>>> r.smembers('set')
{b'c', b'b', b'a'}
5.3.删除集合元素
使用`srem(name, *values)`方法删除集合中一个或多个元素。
>>> r.srem('set', 'a')
1
其中:
- name:集合名,类型为字符串。
- values:要删除的元素,可以是多个,类型为字符串或二进制。
6.有序集合操作
有序集合是一种无序、唯一的数据结构,每个元素都是带有一个权重(分值)的字符串。Redis提供了多种有序集合操作API,可以方便地进行增删改查操作。
6.1.添加有序集合元素
使用`zadd(name, mapping)`方法向有序集合中添加一个或多个元素。mapping是一个字典,元素作为字典的key,分值作为字典value。
>>> r.zadd('zset', {'a': 1, 'b': 2, 'c': 3})
3
其中:
- name:有序集合名,类型为字符串。
- mapping:要添加的元素和分值的字典。
6.2.获取有序集合元素
使用`zrange(name, start, end)`方法获取有序集合中指定范围内的元素。
>>> r.zrange('zset', 0, -1, withscores=True)
[(b'a', 1.0), (b'b', 2.0), (b'c', 3.0)]
其中:
- name:有序集合名,类型为字符串。
- start:起始索引位置(包括该位置)。
- end:结束索引位置(包括该位置)。
6.3.删除有序集合元素
使用`zrem(name, *values)`方法删除有序集合中一个或多个元素。
>>> r.zrem('zset', 'a')
1
其中:
- name:有序集合名,类型为字符串。
- values:要删除的元素,可以是多个,类型为字符串或二进制。
7.事务操作
在Redis中,可以使用事务(Transaction)来确保多个操作在同一个客户端中进行,并可以保证这些操作在Redis服务器上被依次执行。Redis提供了多种事务操作API,可以方便地进行多个操作的原子性处理。
7.1.开启事务
使用`pipeline(transaction=True)`方法开启一个事务。
pipeline = r.pipeline(transaction=True)
7.2.添加事务操作
使用`pipeline.method(*args, **kwargs)`方法添加一条事务操作。通过在事务中执行多个操作,可以保证这些操作是原子执行的。
pipeline.get('name')
pipeline.incr('views')
7.3.执行事务
使用`pipeline.execute()`方法执行事务。
pipeline.execute()
总结
本文介绍了Redis常用的API操作,包括连接操作、字符串操作、哈希操作、列表操作、集合操作、有序集合操作和事务操作。Redis提供了众多API操作,使得开发人员能够更加方便地使用Redis进行数据存储和缓存。