面试:Redis笔记整理(3分钟理清常问知识点)

Redis 是一个高性能的key-value数据库。

支持多种数据类型:

  1. String:可以是字符串、整数、浮点数
  2. List(列表):一个链表,链表上的每个节点都包含一个字符串
  3. Set(集合):包含字符串的无序收集器,并且被包含的每个字符串都是独一无二的,各不相同
  4. Hash(散列):包含键值对的无序散列表。
  5. ZSet(有序集合):字符串成员与浮点数分值之间的有序映射,元素的排列顺序有分值大小决定

特点:

Redis 优势


Redis使用与内存优化


VM 选项是作为 Redis 存储超出物理内存数据的一种数据在内存与磁盘换入换出的一个持久化策略,将严重地拖垮系统的运行速度,所以要关闭 VM 功能,请检查你的 redis.conf 文件中 vm-enabled 为 no。

最好设置下 redis.conf 中的 maxmemory 选项,该选项是告诉 Redis 当使用了多少物理内存后就开始拒绝后续的写入请求,该参数能很好的保护好你的 Redis 不会因为使用了过多的物理内存而导致 swap,最终严重影响性能甚至崩溃。

应用场景

1.String

这个没啥好说的,最常规的 set/get 操作,Value 可以是 String 也可以是数字。一般做一些复杂的计数功能的缓存。缓存序列化后的文件,图片等。

2.Hash

这里 Value 存放的是结构化的对象,比较方便的就是操作其中的某个字段。

做单点登录的时候,可以用这种数据结构存储用户信息,以 CookieId 作为 Key,设置 30 分钟缓存过期时间,能很好的模拟出类似 Session 的效果。

3.List

使用 List 的数据结构,可以做简单的消息队列的功能。另外还有一个就是,可以利用 lrange 命令,做基于 Redis 的分页功能,性能极佳,用户体验好。

4.Set

因为 Set 堆放的是一堆不重复值的集合。所以可以做全局去重的功能。为什么不用 JVM 自带的 Set 进行去重?

因为我们的系统一般都是集群部署,使用 JVM 自带的 Set,比较麻烦,难道为了一个做一个全局去重,再起一个公共服务,太麻烦了。

另外,就是利用交集、并集、差集等操作,可以计算共同喜好,全部的喜好,自己独有的喜好等功能。

5.Sorted Set

Sorted Set多了一个权重参数 Score,集合中的元素能够按 Score 进行排列。

可以做排行榜应用,取 TOP N 操作。Sorted Set 可以用来做延时任务。最后一个应用就是可以做范围查找。

展开阅读全文

页面更新:2024-06-01

标签:单点   数据结构   知识点   字符串   缓存   原子   全局   喜好   数据类型   选项   内存   物理   性能   操作   功能   笔记   数据   科技

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top