Redis简单操作实践从基础到深入(redis 详细讲解)

2023-05-16 07:02:18 操作 实践 讲解

Redis简单操作实践:从基础到深入

Redis是目前非常流行的高性能内存数据库,不仅支持丰富的数据类型,而且具备多种高级功能。本文将重点介绍Redis基础操作和一些高级特性,包括数据结构、事务、发布订阅等。

一、Redis基础操作

1. 连接Redis

利用redis-py库连接Redis数据库,核心代码如下:

“`python

import redis

r = redis.Redis(host=’localhost’, port=6379, db=0)


2. 字符串操作

可以使用set和get指令操作字符串类型的值,以下是示例代码:

```python
r.set('name', 'Tom')
r.get('name')

3. 列表操作

使用Redis的列表功能,可以将多个值按照它们的添加顺序存储在一个列表里,常用命令包括lpush、rpush、lindex等。以下是示例代码:

“`python

r.rpush(‘fruit’, ‘apple’, ‘orange’, ‘banana’)

r.lindex(‘fruit’, 0)


4. 哈希操作

哈希类型是一种键值对集合,其中的值不仅可以是字符串,还可以是数字。哈希命令包括hset、hmset、hget、hgetall等。以下是示例代码:

```python
r.hset('person', 'name', 'Tom')
r.hmset('person', {'age': 20, 'gender': 'male'})
r.hget('person', 'name')

5. 集合操作

集合类型的值是无序的,不允许重复。集合命令包括sadd、srem、smembers等。以下是示例代码:

“`python

r.sadd(‘fruit_set’, ‘apple’, ‘orange’, ‘banana’)

r.smembers(‘fruit_set’)


6. 有序集合操作

有序集合类型的元素是有序的,可以根据元素的分数进行排序。有序集合命令包括zadd、zrange等。以下是示例代码:

```python
r.zadd('score', {'Tom': 80, 'Jack': 90})
r.zrange('score', 0, -1, withscores=True)

二、Redis高级特性

1. 事务

Redis事务是对一系列命令的原子操作,其中的每个命令都将按顺序执行,不能被其他客户端的命令插入。以下是示例代码:

“`python

with r.pipeline(transaction=True) as pipe:

pipe.set(‘name’, ‘Tom’)

pipe.set(‘age’, 20)

pipe.execute()


2. 发布订阅

Redis的发布订阅功能是一种消息传递模式,消息的发送者(发布者)将消息发送给一个或多个频道,订阅者可以从频道接收并处理消息。以下是示例代码:

```python
class Subscriber(redis.client.PubSub):
def on_message(self, message):
print(message)
sub = Subscriber()
sub.subscribe('channel')
t = threading.Thread(target=sub.run_in_thread, daemon=True)
t.start()
r.publish('channel', 'hello')

3. Lua脚本

Redis支持Lua脚本,可以通过Lua脚本实现复杂的原子操作。以下是示例代码:

“`python

script = ‘if tonumber(redis.call(“get”, KEYS[1])) > tonumber(ARGV[1]) then return redis.call(“incr”, KEYS[1]) else return 0 end’

r.eval(script, 1, ‘counter’, 5)


以上就是Redis的一些基础操作和高级特性的简单介绍和示例代码,希望对大家有所帮助。

相关文章