likes
comments
collection
share

快速入门 redis

作者站长头像
站长
· 阅读数 33

引言

MySQL是一种关系型数据库,通过表和字段来存储信息,表与表之间通过 ID 关联。它使用 SQL 语言进行数据的增删改查操作。由于 MySQL 是基于硬盘存储,并且需要解析执行 SQL 语句,这可能会导致性能瓶颈。通常情况下,服务端执行计算的速度很快,但等待数据库查询结果的过程却较为缓慢。

redis 简介

在计算机科学领域,性能优化的常见策略之一是使用缓存(cache)。考虑到内存与硬盘速度的显著差异,我们通常会采用内存数据库,如 Redis 作为缓存,以提高数据访问速度。Redis 通常用作数据库、缓存或消息传递中间件。它以键值对(key-value pair)的形式设计,支持多种类型的值,例如:

  • 字符串(String)
  • 列表(List)
  • 集合(Set)
  • 有序集合(Sorted Set)
  • 哈希表(Hash)
  • 地理信息(Geospatial)
  • 位图(Bitmap)

Redis 的使用

在 Docker Desktop 中搜索 Redis,点击 Run:快速入门 redis将宿主机的 6379 端口映射到容器内的 6379 端口,以便通过本机端口访问容器内 Redis 服务。

将宿主机的目录挂载到容器内的 /data 目录,确保数据保存在本机:快速入门 redis运行成功后:快速入门 redisfiles 里可以看到所有的容器内的文件:快速入门 redis这个 mounted 标志代表挂载的目录。我们在本地目录添加一个文件:快速入门 redis在容器内的 data 目录就能访问到这个文件了:快速入门 redis同样,在容器内修改了 data 目录,那本机目录下也会修改。使用 redis 也可以将数据持久化到硬盘。,不用 mysql。

Redis 命令行操作

在 terminal 输入 redis-cli,进入交互模式:快速入门 redis

字符串操作

set、get:快速入门 redisincr 用于递增:快速入门 redis适用于计数场景,如阅读量、点赞量。使用 keys 命令,查询有哪些 key。keys 后支持模式匹配,如使用 * 查询所有键。快速入门 redis

Redis GUI工具

其他 Redis 数据结构

列表(List):

lpush:从列表左侧添加元素

lpush list1 111
lpush list1 222
lpush list1 333

执行上面的命令,点击刷新,就可以最新值:快速入门 redis

rpush:从列表右侧添加元素

rpush list1 444
rpush list1 555

快速入门 redis

lpop:从左侧移除元素

lpop list1

快速入门 redis

rpop:从右侧移除元素

rpop list1

快速入门 redis

lrange:获取列表中的元素

快速入门 redislrange list1 0 -1 就是查询 list1 的全部数据。

集合(Set)

set 的特点是无序并且元素不重复。

sadd:添加元素,自动去重

sadd set1 111
sadd set1 111
sadd set1 111
sadd set1 222
sadd set1 222
sadd set1 333

刷新之后就可以看到它去重后的数据:快速入门 redis

sismember:检查元素是否属于集合

sismember set1 111

快速入门 redis

sismember set1 444

快速入门 redis

有序集合(Sorted Set/ZSet)

zadd:添加元素,并指定分数(排序依据)

zadd zset1 4 yun
zadd zset1 2 yu
zadd zset1 1 dai
zadd zset1 3 mu

会按照分数来排序:快速入门 redis

zrange:按分数获取元素

通过 zrange 命令取数据,比如取排名前三的数据:快速入门 redis

哈希表(Hash)

hset:设置键值对

hset hash1 key1 1
hset hash1 key2 2
hset hash1 key3 3
hset hash1 key4 4
hset hash1 key5 5

快速入门 redis

hget:获取键对应的值

hget hash1 key3

快速入门 redis

地理信息(Geo)

geo 的数据结构存储经纬度信息,根据距离计算周围的人用的:

geoadd:添加地理坐标

用 loc 作为 key,分别添加 yunyun 和 mumu 的经纬度:

geoadd loc 13.361389 38.115556 "yunyun" 15.087269 37.502669 "mumu" 

redis 实际使用 zset 存储的,把经纬度转化为了二维平面的坐标:快速入门 redis

geodist:计算两个坐标点之间的距离

geodist loc yunyun mumu

快速入门 redis

georadius:搜索指定半径内的其他点

传入经纬度、半径和单位:

georadius loc 15 37 200 km
georadius loc 15 37 100 km

快速入门 redis

Redis的过期时间

Redis 的键可以通过 expire 命令设置过期时间,使用 ttl 命令查询剩余过期时间。比如我设置 yun 的 key 为 30 秒过期:

expire yun 30
转载自:https://juejin.cn/post/7362837521560207397
评论
请登录