Redis 是一个开源的内存数据结构存储系统,它可以用作数据库、缓存和消息代理。Redis 支持多种数据结构,包括字符串、哈希、列表、集合和有序集合。它非常高效,广泛用于需要快速读写操作的应用场景。
打开命令提示符(CMD)窗口,并进入Redis安装目录下的src
文件夹。然后运行以下命令来启动Redis服务器:
redis-server
另打开一个命令提示符(CMD)窗口,然后运行以下命令来启动Redis客户端:
redis-cli
Redis 客户端的启动指令选项主要包括:
redis-cli
:启动 Redis 命令行客户端。-h
:指定 Redis 服务器的主机名或 IP 地址,默认是 localhost
。-p
:指定 Redis 服务器的端口号,默认是 6379
。-a
:指定 Redis 服务器的密码。-n
:选择数据库,指定数据库索引(0-15)。--pipe
:以管道模式运行,适用于批量操作。--scan
:扫描数据库中的所有键。pip install redis
安装完redis-py后,您可以通过以下Python代码来启动Redis客户端:
import redis
# 创建Redis客户端
r = redis.Redis(host='localhost', port=6379, db=0)
# 连接Redis服务器
r.ping()
# 执行Redis命令
r.set('key', 'value')
value = r.get('key')
# 关闭Redis连接
r.close()
在以上代码中,我们首先通过redis.Redis()
函数创建一个Redis客户端对象。参数host
和port
指定了Redis服务器的主机和端口,db
参数指定了要连接的数据库编号(默认为0)。
Redis有五种主要的数据类型:
String(字符串):Redis的最基本的数据类型,一个key对应一个value。
List(列表):一个链表,链表中的每个节点都包含一个字符串,按照插入顺序排序。
Hash(哈希表):由键值对组成的无序散列表,适用于存储对象。
Set(集合):无序的字符串集合,不允许有重复的元素。
Sorted Set(有序集合):和集合类似,但每个元素都会关联一个浮点数分数,根据分数进行排序。
String(字符串)的相关操作:
# 设置字符串的键值对
client.set("name", "龙仔")
# 获取指定键的值
client.get("name")
# 设置多个字符串的键值对
client.mset({
"id": 101,
"age": 20
})
# 获取多个指定键的值
print(client.mget(["name", "id", "age"]))
# 设置有效期 中间的是设置时间 20s
client.setex("name", 20, "龙仔")
List(列表)的相关操作:
# 添加值
# client.lpush("key_list", 1, 2, 3, 4)
# client.rpush("key_list", 0, -1, -2)
# 删除值
# print(client.lpop("key_list"))
# print(client.rpop("key_list"))
# 值的数量
# print(client.llen("key_list"))
# 取得返回下标的值
# print(client.lrange("key_list", start=0, end=4))
# 取得单个下标的值
# print(client.lindex("key_list", 5))
# 切片,保留索引范围内的值
# client.ltrim("key_list", start=2, end=7)
Hash(哈希表)的相关操作:
# 插入键值对
# client.hset("key_hash", "key1", "雕龙")
# client.hmset("key_hash", {"key2": "龙仔", "key3": "吊宇"})
# 获取键值对
# print(client.hget("key_hash", "key1"))
# print(client.hgetall("key_hash"))
# 删除键值对
# client.hdel("key_hash", "key1")
# 获取键值对的个数
# print(client.hlen("key_hash"))
# 获取所有键
# print(client.hkeys("key_hash"))
# 获取所有的值
# print(client.hvals("key_hash"))
Set(集合)的相关操作:
# 添加
# client.sadd("key_set", 2, 3, 4, 5)
# 删除
# client.srem("key_set", 1, 2, 3)
# 获取所有的值
# print(client.smembers("key_set"))
# 获取单个值是否在集合中
# print(client.sismember("key_set", "4"))
# 获取集合中值的个数
# print(client.scard("key_set"))
# # 集合的交集
# print(client.sinter(["key_set", "key_set1"]))
# # 集合的并集
# print(client.sunion(["key_set", "key_set1"]))
# # 集合的差集
# print(client.sdiff(["key_set", "key_set1"]))
Sorted Set(有序集合)的相关操作:
# 添加值和权重
# client.zadd("key_zset", {"吊宇": 0, "雕龙": -1, "浩坤": 100})
# 删除值
# client.zrem("key_zset", "吊宇")
# 根据权重获取对应范围内的值
# print(client.zcount("key_zset", 0, 100))
# 根据索引取得返回内值
# print(client.zrange("key_zset", 0, 1))