redis:

  1. 是非关系型数据库---

  2. 性能优秀,吞吐量 能达到 10万条/s 

  3. 为什么性能这么好的:  

    1. redis是直接操作内存的
    2. redis是单线程执行的,减少线程竞争与资源的占用(IO多路复用)
    3. redis命令简单: set key value,语法规则考究,存储的数据结构合理
    4. 使用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 的学习相关推荐

  1. NoSQL Redis的学习笔记

    我下载在:/var/www/html/   (redis.conf在此目录下) 启动Redis:/var/www/html/src下  ./redis-server     然后另一个客户端/src下 ...

  2. Redis的学习记录

    Redis的学习记录 1.先导了解 1.1 NOSQL概述 1.1.1 为什么要用NoSql? 1.1.2 NoSql了解 1.1.3 NoSql特点 1.1.4 NoSQL的四大分类 2. Redi ...

  3. Redis 系统学习目录

    Redis 系统学习目录 1.redis是什么 2.redis的作者何许人也 3.谁在使用redis 4.学会安装redis 5.学会启动redis 6.使用redis客户端 7.redis数据结构 ...

  4. memcache/redis 缓存学习笔记

    0.redis和memcache的区别 a.redis可以存储除了string之外的对象,如list,hash等 b.服务器宕机以后,redis会把内存的数据持久化到磁盘上,而memcache则不会 ...

  5. 笔记-redis深入学习-1

    笔记-redis深入学习-1 redis的基本使用已经会了,但存储和读取只是数据库系统最基础的功能: 数据库系统还得为可靠实现这两者提供一系列保证: 数据.操作备份和恢复,主要是持久化: 高可用:主要 ...

  6. Redis 进阶学习笔记

    Redis进阶学习笔记 阅读Redis.conf配置文件 # 61, 绑定的 IP , 一般注释掉该命令,这个吗,命令表示仅接受本机的(IP为本机)客户端连接, bind 127.0.0.1 # 80 ...

  7. Redis进阶学习08--多级缓存

    Redis进阶学习08--多级缓存 什么是多级缓存 JVM进程缓存 环境准备 docker安装mysql docker安装nginx 反向代理 初识Caffeine 实现JVM进程缓存 需求 实现 L ...

  8. redis安全学习笔记

    redis安全学习笔记 [toc] 文章部分内容首发于xray社区公众号 基础 https://www.runoob.com/redis/redis-tutorial.html 环境 : ubuntu ...

  9. 尚硅谷Redis 7学习笔记

    尚硅谷Redis 7学习笔记 视频链接 新手入门篇 1.安装及数据类型 2.持久化 3.Redis 7 事务.管道.发布订阅.主从.哨兵.集群 4.springboot整合redis 高级篇(更新中- ...

最新文章

  1. 还在做Excel分析师?HR:对不起,我们还要求会Python!
  2. json解析详解 java_Java解析Json数据的两种方式详解
  3. Vue 安装 less
  4. python四大高阶函数_详谈Python高阶函数与函数装饰器(推荐)
  5. sed 删除windows下的CR/LF
  6. 腾讯如何打造新基建时代高可扩展的区块链引擎
  7. 如何选择自己适合的引流平台?
  8. LeetCode-107二叉树的层次遍历 II-BFS实现
  9. Springboot 内嵌 Tomcat 版本查看
  10. 轻量级日志收集转发 | fluent-bit指令详解(一)
  11. CSS+html制作简历表
  12. 少量代码完成火山图绘制
  13. 戴尔R230安装esxi
  14. 论如何拯救程序员的发际线?程序员的事情当然要用编程解决啦
  15. 【计算机网络】计算机网络核心知识点
  16. J-flash工具使用教程
  17. isspace() 函数
  18. PHP+MySQL导出大量数据(Iterator yield)
  19. photoshop图像合成教程之将人物和风景合成一张图片
  20. 用 HI3559A / Hi3519A 接入 BT1120或BT656视频

热门文章

  1. RF射频信号,高速信号能将电源平面作为参考平面吗?
  2. 绝对管用的eclipse连接夜神模拟器方法
  3. 数据类型、变量、字符串(工匠工坊第二课)
  4. 使用这5款模拟器访问备选操作系统
  5. git拉取代码报错fatal Authentication failed for ‘httpxxxx.git‘‘解决方案
  6. 二叉排序树基本操作(链表实现)(有错误)
  7. mysql一条语句是如何被执行的——带你了解mysql语句执行内部顺序
  8. ysoserial CC5利用链分析
  9. Python程序设计入门32道基础编程题目与参考代码
  10. python程序设计 从基础入门到实战应用电子书_Python程序设计——从基础入门到实战应用...