Redis 启动!
简介
因为 mysql 存在硬盘,并且会执行 sql 的解析,会成为系统的性能瓶颈,毕竟服务器端执行计算再快,等待数据库查询结果也十分耗时。所以我们要做一些优化。
那么我把数据缓存在内存中,阁下又该如何应对了。而 redis 就是这种内存数据库:
- redis 的主要用途是把查出数据来之后放到 redis 中缓存,下次如果 redis 有数据就直接用,没有的话就查数据库然后更新 redis 缓存。
- 其次用途就是直接作为存储数据的地方了,因为 redis 本身是会做持久化的,也可以把数据直接保存在 redis 里,不存到 mysql。但因为 redis 在内存存储数据,这样成本还是比较高的,需要经常扩容。
速通
✅ docker 拉_**<font style="color:rgb(37, 41, 51);">redis</font>**_
镜像然后直接开 RUN
Redis 是 key、value 的格式存储的,value 有很多种类型,比如 **<font style="color:rgb(37, 41, 51);">string、list、set、sorted set(zset)、hash、geo</font>**
等。
灵活运用这些数据结构,可以完成各种需求,比如排行榜用 zset、阅读数点赞数用 string、附近的人用 geo 等。
而且这些 key 都可以设置过期时间,可以完成一些时效性相关的业务。
进入 cli
1 |
|
String
redis 的 String 包括字符串与数字
get、set、keys
get 只用于获取 String
类型
1 |
|
incr 用于递增
只能递增数字
1 |
|
List
lpush、rpush
lpush 即是 left push 的意思,执行后会从左到右添加到列表中。
1 |
|
rpush 是 right push 的意思,执行后会从右往左添加到列表中.
1 |
|
lpop、rpop
lpop 和 rpop 自然是从左边和从右边删除数据。
lrange
查询 list 类型的数据要用 lrange。
1 |
|
Set
Set 的特点是无序并且元素不重复。
sadd
1 |
|
sismember
判断是否是集合中的元素,也可查询所有元素
1 |
|
Sorted Set
set 只能去重、判断包含,不能对元素排序。如果排序、去重的需求,比如排行榜,可以用 sorted set,也就是 <font style="color:rgb(37, 41, 51);">zset</font>
zadd
它每个元素是有一个<font style="color:rgb(37, 41, 51);">分数 (score)</font>
的,会按照分数来排序:
1 |
|
zrange
查询 Sorted Set 类型的数据要用 zrange。
1 |
|
geo
就是经纬度信息,根据距离计算周围的人用的
1 |
|
你可以用 geodist 计算两个坐标点的距离:
1 |
|
用 georadius 搜索某个半径内的其他点,传入经纬度、半径和单位:
1 |
|
平时我们查找周围的人、周围的 xxx 都可以通过 redis 的 geo 数据结构实现。
Hash
和 Map 对象类似
hset
1 |
|
hget
1 |
|
属性操作
expire
设置过期时间
1 |
|
ttl
查询剩余过期时间
1 |
|
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!