入门概述

KV、cache、persistence

1、是什么

  1. Redis:REmote DIctionary Server(远程字典服务器)
  2. 是完全开源免费的,用C语言编写的,遵守BSD协议,是一个高性能的(key/value)分布式的内存数据库,基于内存运行并支持持久化的NoSQL数据库,被称之为数据结构数据库。
  3. Redis与其他key—value缓存产品有以下三个特点:
    • Redis支持数据持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。
    • Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储
    • Redis支持数据的备份,即master-slave模式的数据备份

2、能干嘛

  1. 内存存储和持久化
    • redis支持异步将内存中的数据写到硬盘上,同时不影响继续服务。
  2. 取最新N个数据的操作
    • 可以将最新的10条评论的ID放在Redis的List集合里面
  3. 模拟类似于HttpSession这种需要设定过期时间的功能。
  4. 发布、订阅消息系统
  5. 定时器、计数器

3、怎么玩

1、数据类型、基本操作和配置

2、持久化和复制,RDB/AOF

3、事务的控制

4、复制

。。。

4、去哪儿下载

http://redis.io

http://www.redis.cn

Redis的安装

企业做redis的开发,99%的都是linux版的运用和安装

按照redis官网的方法安装

http://www.redis.net.cn

因为redis是c/c++安装的,所以需要检查linux环境中的gcc的环境,现在一般都是使用9.x的版本

image-20201027205341223.png

在Docker中安装

hub.docker.com

Redis启动后杂项基础知识

1、单进程

  • 单进程模型来处理客户端的请求。对读写等时间的响应是通过对epoll函数的包装来做到的。
  • redis的实际处理速度完全依靠主程序的执行效率。
  • Epoll是linux内核为处理大批量文件描述而做了改进的epoll,是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并发连接中只要有少量活跃情况下的系统CPU利用率。

2、数据库

  • 默认16个数据库,类似数组下标从0开始,初始默认使用零号库。
  • 通过select命令切换数据库
    • select index
  • 查看当前数据库的key的数量(前提是切换到相应的库)
    • DBSIZE
  • 清空当前的库:
    • FLUSHDB
  • 清除所有的库:
    • FLUSHALL
  • 同一个密码管理,16个库都是同样的密码,要么都ok,要么都连不上。
  • redis索引都是从0开始的
  • 端口默认6379