redis常用api操作有哪些

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进行数据存储和缓存。

数据库标签