Redis简单操作实践从基础到深入(redis 详细讲解)
Redis简单操作实践:从基础到深入
Redis是目前非常流行的高性能内存数据库,不仅支持丰富的数据类型,而且具备多种高级功能。本文将重点介绍Redis基础操作和一些高级特性,包括数据结构、事务、发布订阅等。
一、Redis基础操作
1. 连接Redis
利用redis-py库连接Redis数据库,核心代码如下:
“`python
import redis
r = redis.Redis(host=’localhost’, port=6379, db=0)
2. 字符串操作
可以使用set和get指令操作字符串类型的值,以下是示例代码:
```pythonr.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等。以下是示例代码:
```pythonr.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等。以下是示例代码:
```pythonr.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的发布订阅功能是一种消息传递模式,消息的发送者(发布者)将消息发送给一个或多个频道,订阅者可以从频道接收并处理消息。以下是示例代码:
```pythonclass 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的一些基础操作和高级特性的简单介绍和示例代码,希望对大家有所帮助。