Nosql - redis 的学习
redis:
是非关系型数据库---
性能优秀,吞吐量 能达到 10万条/s
为什么性能这么好的:
- redis是直接操作内存的
- redis是单线程执行的,减少线程竞争与资源的占用(IO多路复用)
- redis命令简单: set key value,语法规则考究,存储的数据结构合理
- 使用nio的方式---设置固定槽点,每一个槽点针对某一种数据的请求,减少服务端的不必要开销
再就是基本指令的学习,没有捷径,只有熟能生巧
有五种数据存储结构: string hash list set zset
string | key-value:适合做统计,比如页面访问总数 |
hash | 类似map --适合存储实体信息,比如 用户基本信息:name age height phone |
list | 队列 ,比较适合做列表展示,访问记录/朋友圈消息展示 |
set | 集合,不能有重复,那就是查重的场景,抢红包/投票数统计 |
zset | score:member ,附带一个数值,比较适合做排行榜,一些需要排序的场景 |
(1)多路 I/O 复用模型
多路I/O复用模型是利用 select、poll、epoll 可以同时监察多个流的 I/O 事件的能力,在空闲的时候,会把当前线程阻塞掉,当有一个或多个流有 I/O 事件时,就从阻塞态中唤醒,于是程序就会轮询一遍所有的流(epoll 是只轮询那些真正发出了事件的流),并且只依次顺序的处理就绪的流,这种做法就避免了大量的无用操作。
这里“多路”指的是多个网络连接,“复用”指的是复用同一个线程。采用多路 I/O 复用技术可以让单个线程高效的处理多个连接请求(尽量减少网络 IO 的时间消耗),且 Redis 在内存中操作数据的速度非常快,也就是说内存内的操作不会成为影响Redis性能的瓶颈,主要由以上几点造就了 Redis 具有很高的吞吐量。----出处
在使用redis的过程中需要注意的一些问题::
1 |
Q 1 .redis进行快照的时候,对于内存的使用也会达到当前redis占用的内存比,也就是如果现在redis使用了51% 的内存,执行了快照,内存使用就会达到 102% ,系统就会卡死 A 1:那可以设定redis的内存使用阀值-redis.conf 中设置maxminmun =45% |
2 |
Q 2 ..而其实redis 在内存使用达到95% 的时候就会自动执行一个swap 操作,将一部分redis的内容存储到磁盘中,可想而知,在运行过程中,操作到那部分磁盘中的文件时必然慢的要死,影响用户体验----读操作: 内存-us级 磁盘 ms 级 ---- A 2 : 在设定redis内存使用阀值的情况下,在加一个内存到达阀值之后的redis使用内存自动清理策略----- utl 从最少使用的开始删除/ ttl 从最近过期的删除 /random 从最近过期的里面随机删除 / none 不删除任何,使用swap磁盘化 |
3 |
Q 3 .在运行很长一段时间之后redis必然出现很多内存碎片,这时候最简单做法就是重启redis ,那是不是要先备份呢,可以rdb 快照,那就要注意上面的第一个问题了。或者是AOF 日志 - A 3 :那要知道一点restart ,即使在开启aof的情况下,重启redis前不会自动执行aof的,需要手动先快照一份 |
一些测试信息:
Redis数据结构详解之List(二) - 张龙豪 - 博客园
操作spring 的redisTemplate ---API:
20道经典Redis面试题_CSDN砖家的博客-CSDN博客_redis面试题
Spring Boot Redis RedisTemplate 相关API介绍_东非大裂谷的博客-CSDN博客
Nosql - redis 的学习相关推荐
- NoSQL Redis的学习笔记
我下载在:/var/www/html/ (redis.conf在此目录下) 启动Redis:/var/www/html/src下 ./redis-server 然后另一个客户端/src下 ...
- Redis的学习记录
Redis的学习记录 1.先导了解 1.1 NOSQL概述 1.1.1 为什么要用NoSql? 1.1.2 NoSql了解 1.1.3 NoSql特点 1.1.4 NoSQL的四大分类 2. Redi ...
- Redis 系统学习目录
Redis 系统学习目录 1.redis是什么 2.redis的作者何许人也 3.谁在使用redis 4.学会安装redis 5.学会启动redis 6.使用redis客户端 7.redis数据结构 ...
- memcache/redis 缓存学习笔记
0.redis和memcache的区别 a.redis可以存储除了string之外的对象,如list,hash等 b.服务器宕机以后,redis会把内存的数据持久化到磁盘上,而memcache则不会 ...
- 笔记-redis深入学习-1
笔记-redis深入学习-1 redis的基本使用已经会了,但存储和读取只是数据库系统最基础的功能: 数据库系统还得为可靠实现这两者提供一系列保证: 数据.操作备份和恢复,主要是持久化: 高可用:主要 ...
- Redis 进阶学习笔记
Redis进阶学习笔记 阅读Redis.conf配置文件 # 61, 绑定的 IP , 一般注释掉该命令,这个吗,命令表示仅接受本机的(IP为本机)客户端连接, bind 127.0.0.1 # 80 ...
- Redis进阶学习08--多级缓存
Redis进阶学习08--多级缓存 什么是多级缓存 JVM进程缓存 环境准备 docker安装mysql docker安装nginx 反向代理 初识Caffeine 实现JVM进程缓存 需求 实现 L ...
- redis安全学习笔记
redis安全学习笔记 [toc] 文章部分内容首发于xray社区公众号 基础 https://www.runoob.com/redis/redis-tutorial.html 环境 : ubuntu ...
- 尚硅谷Redis 7学习笔记
尚硅谷Redis 7学习笔记 视频链接 新手入门篇 1.安装及数据类型 2.持久化 3.Redis 7 事务.管道.发布订阅.主从.哨兵.集群 4.springboot整合redis 高级篇(更新中- ...
最新文章
- 还在做Excel分析师?HR:对不起,我们还要求会Python!
- json解析详解 java_Java解析Json数据的两种方式详解
- Vue 安装 less
- python四大高阶函数_详谈Python高阶函数与函数装饰器(推荐)
- sed 删除windows下的CR/LF
- 腾讯如何打造新基建时代高可扩展的区块链引擎
- 如何选择自己适合的引流平台?
- LeetCode-107二叉树的层次遍历 II-BFS实现
- Springboot 内嵌 Tomcat 版本查看
- 轻量级日志收集转发 | fluent-bit指令详解(一)
- CSS+html制作简历表
- 少量代码完成火山图绘制
- 戴尔R230安装esxi
- 论如何拯救程序员的发际线?程序员的事情当然要用编程解决啦
- 【计算机网络】计算机网络核心知识点
- J-flash工具使用教程
- isspace() 函数
- PHP+MySQL导出大量数据(Iterator yield)
- photoshop图像合成教程之将人物和风景合成一张图片
- 用 HI3559A / Hi3519A 接入 BT1120或BT656视频
热门文章
- RF射频信号,高速信号能将电源平面作为参考平面吗?
- 绝对管用的eclipse连接夜神模拟器方法
- 数据类型、变量、字符串(工匠工坊第二课)
- 使用这5款模拟器访问备选操作系统
- git拉取代码报错fatal Authentication failed for ‘httpxxxx.git‘‘解决方案
- 二叉排序树基本操作(链表实现)(有错误)
- mysql一条语句是如何被执行的——带你了解mysql语句执行内部顺序
- ysoserial CC5利用链分析
- Python程序设计入门32道基础编程题目与参考代码
- python程序设计 从基础入门到实战应用电子书_Python程序设计——从基础入门到实战应用...