Redis的非关系型数据库
Redis是一个开源的使用C语言编写的、支持网络交互的、可基于内存也可持久化的Key-Value数据库。
Redis不是传统的关系数据库,而是一个nosql数据库(非关系型数据库),也不是传统的键值存储。Redis支持丰富的数据结构,如字符串(String), 哈希表(Map), 列表(list), 集合(sets),有序集合(sorted sets)等,并且提供了诸如键过期,发布/订阅等功能。
Redis非关系型数据库的特点:
- 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s。
- 持久化 – 可以将内存中的数据保存在硬盘中,重启时可以再次加载。
- 支持数据类型丰富 – String, List, Hash, Set 和 Sorted Set 等。
- 支持复制 – 使用Redis Sentinel 和 Redis Cluster 可以进行自动的复制和故障恢复。
- 支持事务 – 通过MULTI和EXEC指令包起来的操作会作为一个整体执行,保证了事务中的命令要么全部执行,要么全部不执行。
解决方案:
- 安装Redis
# 使用Ubuntu/Debian系统的安装命令
sudo apt-get install redis-server
# 使用CentOS/RHEL系统的安装命令
sudo yum install redis
- 启动Redis服务
# 使用Ubuntu/Debian系统的启动命令
sudo service redis-server start
# 使用CentOS/RHEL系统的启动命令
sudo systemctl start redis
- 连接Redis
# 连接本地Redis服务
redis-cli
# 连接远程Redis服务
redis-cli -h host -p port -a password
- 使用Redis
# 使用Python连接Redis
import redis
r = redis.Redis(host='localhost', port=6379, db=0)
# 设置键值对
r.set('foo', 'bar')
# 获取键值对
print(r.get('foo'))
- 使用Redis的数据结构
# 使用Redis的哈希表
r.hset('hash_key', 'field1', 'value1')
r.hget('hash_key', 'field1')
# 使用Redis的列表
r.rpush('list_key', 'item1')
r.lpush('list_key', 'item2')
r.lrange('list_key', 0, -1)
# 使用Redis的集合
r.sadd('set_key', 'member1')
r.smembers('set_key')
# 使用Redis的有序集合
r.zadd('zset_key', {'member1': 1})
r.zrange('zset_key', 0, -1)
- 使用Redis的发布/订阅模式
# 发布消息
r.publish('channel', 'message')
# 订阅频道
pubsub = r.pubsub()
pubsub.subscribe('channel')
pubsub.listen()
以上就是Redis非关系型数据库的基本使用方法,包括安装、启动、连接、基本操作、数据结构操作和发布/订阅模式。
评论已关闭