Redis 简介和使用

9 篇文章 0 订阅
5 篇文章 0 订阅

什么是 Redis

Redis 是一个开源内存键值数据库,支持不同类型的数据结构。它通常被用作缓存、消息代理或持久化存储。

Redis 最大的特点就是快速。因为 Redis 数据库完全放在内存中,所以操作很迅速。此外,Redis 使用 C语言编写,处理请求时不需要创建许多额外的对象,也能够更快地进行数据IO操作。

相较于传统的磁盘数据库,Redis 的优势在于它对数据高速读取性能的支持,适合快速存储和检索应用程序所需的数据。

Redis 的使用场景

以下是一些 Redis 常见的使用场景:

  • 缓存:Redis 常用于缓存经常与后端服务交互的数据,并在内存中保留一份数据的备份,这样就可以快速地响应客户端请求,减少了读取磁盘的延迟。

  • 消息队列:Redis 提供了可以进行简单消息队列管理的命令,例如实现“发布-订阅”模式等消息推送系统。

  • 计数器和排行榜:由于 Redis 的高速读取性能,它可以轻而易举地实现计数器和排行榜应用程序,同时也支持像 ZSET 这样的数据类型。

Redis 基础命令

接下来我们将展示一些 Redis 的基础命令。这些命令可以执行各种基本操作,例如添加和检索数据,以及更改和删除现有数据:

# 连接到 Redis 服务器
redis-cli

# 添加一个字符串键值对
set mykey "hello"

# 获取已经存储的值
get mykey

# 删除键值对
del mykey

# 设置哈希类型的键值,并添加三个键值对
hmset user:1234 name "John" age 25 email john@example.com

# 获取名为 user:1234 的键中所有键值对
hgetall user:1234

# 将值添加到列表尾部
lpush mylist "world"

# 检索列表中的值
lrange mylist 0 -1

# 将元素添加到称为 myset 的集合中
sadd myset "one" "two"

# 从 myset 集合中删除元素 two
srem myset "two"

Redis 的数据类型

Redis 支持五种核心数据类型:string、list、set、zset 和 hash。

String 类型

String 类型是 Redis 最简单的数据类型,这就意味着它们可以存储任何类型的数据,例如整数、浮点数或字符串。

以下是使用 Redis string 数据类型的两个基本命令:

# 保存字符串
SET greeting "hello world"

# 获取字符串
GET greeting

List 类型

List 类型是一个数组/列表结构。你可以从列表两端添加、读取或删除元素,使其非常适合于处理实时消息流之类的数据。

# 从列表的左边插入元素
LPUSH countries USA UK China

# 获取列表中的元素
LRANGE countries 0 -1

Set 类型

Set 类型是无序集合的一个非常好的选择。Set 中的每个元素都必须唯一,并且可以使用交集、并集和差集等操作来组合键之间的值。

# 将一些项目添加到集合中
SADD myset "Fizz" "Buzz"

# 获取集合中的所有元素
SMEMBERS myset

Hash 类型

Hash 类型是 Redis 中非常有用的一种类型,它存储了一组属性和属性值。对于这种结构,我们可以使用批量读写及更新多个维度的数据:

# 添加新数据到哈希表
HSET user:1234 name "John"

# 获取名为 user:1234 的哈希表中某个键的值
HGET user:1234 name

Zset 类型

Zset 类型是 Redis 的有序集合实现,它通过关联分数和排名来代替排序和索引。

# 给中国队打20个进球
ZADD team-china 20 "some-player-name"

# 检索排名前10的球员名称及其分数
ZREVRANGE team-china 0 9 WITHSCORES

Redis 在应用中的实践

以下是一个简单的使用 Flask 框架的 Python 代码,用于展示如何将 Redis 作为缓存来使用:

from flask import Flask
from redis import Redis


app = Flask(__name__)
redis = Redis(host='localhost', port=6379)


@app.route('/<path:name>/')
def get_name(name: str):
    # 查询 Redis 缓存
    value = redis.get(name)
    if value:
        return f"Hello, {value.decode('utf-8')}!"
    else:
        val = name.upper()
        redis.set(name, val)
        return f"Hello, {val}!"


if __name__ == '__main__':
    app.run(debug=True)

在上面的示例中,我们使用 Redis 来缓存响应。如果某个数据路径已经被查询过,并且值存在于 Redis 中,则可以直接从 Redis 中返回。

如果键不是已经存在的,那么就先

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用Redis的优点主要包括以下几个方面: 1. 异常快速:Redis非常快速,每秒可以处理数十万个读写操作。这是因为Redis将其数据库完全保存在内存中,只使用磁盘进行持久化,避免了磁盘I/O的延迟。 2. 丰富的数据类型:相对于其他键值数据存储,Redis拥有一组相对丰富的数据类型,如字符串、哈希、列表、集合和有序集合。这样可以更好地满足不同场景下的数据存储需求。 3. 数据过期设置:Redis可以针对数据设置过期时间,使得过期的数据可以自动清理,无需应用方关注。这在一些需要具有时间性的数据存储场景中特别有用,如短信验证码、具有时间性的商品展示等。 4. 高性能的缓存Redis缓存方面的应用非常常见,因为它具有卓越的读写性能。它逐渐取代了memcached成为首选的服务端缓存组件。此外,Redis还支持事务,可以有效保证数据的一致性。 总结起来,使用Redis的优点包括快速响应、多样的数据类型支持、数据过期设置和高性能的缓存能力。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Redis简介](https://download.csdn.net/download/weixin_38691194/13699291)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Redis高级(一):redis特点、redis优缺点、redis应用场景](https://blog.csdn.net/weixin_43093328/article/details/118968203)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值