此文是我看尚硅谷教学视频后的个人的redis学习笔记,每一张截图都是我亲自敲后截图放在笔记中的,粘贴在博客上可能会有点点模糊,若有错误或不足,还望各位大神多多指正!
目录
2.4.3 jemalloc/jemalloc.h:没有那个文件或目录
1 Redis入门概述
1.1 是什么
Redis:REmote DIctionary Server(远程字典服务器),是完全开源免费的,用C语言编写的,遵守BSD协议,是一个高性能的(key/value)分布式内存数据库,基于内存运行并支持持久化的NoSQL数据库,是当前最热门的NoSql数据库之一,也被人们称为数据结构服务器。Redis 与其他 key - value 缓存产品有以下三个特点:
- Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用;
- Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储;
- Redis支持数据的备份,即master-slave模式的数据备份;
1.2 能干嘛
- 内存存储和持久化:redis支持异步将内存中的数据写到硬盘上,同时不影响继续服务;
- 取最新N个数据的操作,如:可以将最新的10条评论的ID放在Redis的List集合里面;
- 模拟类似于HttpSession这种需要设定过期时间的功能;
- 发布、订阅消息系统;
- 定时器、计数器;
1.3 去哪下
1.4 怎么玩
- 数据类型、基本操作和配置
- 持久化和复制,RDB/AOF
- 事务的控制
- 复制
2 Redis的安装(Linux版)
2.1 上传安装包
下载获得redis-3.0.4.tar.gz后将它放入我们的Linux目录/opt
2.2 解压安装包
/opt目录下,解压命令:tar -zxvf redis-3.0.4.tar.gz
解压完成后出现文件夹:redis-3.0.4
2.3 进入目录
进入目录:cd redis-3.0.4
2.4 执行make命令
在redis-3.0.4目录下执行make命令
2.4.1 运行make命令时出现的错误解析
没有安装gcc
2.4.2 安装gcc
gcc是linux下的一个编译程序,是C程序的编译工具。
GCC(GNU Compiler Collection) 是 GNU(GNU's Not Unix) 计划提供的编译器家族,它能够支持 C, C++, Objective-C, Fortran, Java 和 Ada 等等程序设计语言前端,同时能够运行在 x86, x86-64, IA-64, PowerPC, SPARC 和 Alpha 等等几乎目前所有的硬件平台上。鉴于这些特征,以及 GCC 编译代码的高效性,使得 GCC 成为绝大多数自由软件开发编译的首选工具。虽然对于程序员们来说,编译器只是一个工具,除了开发和维护人员,很少有人关注编译器的发展,但是 GCC 的影响力是如此之大,它的性能提升甚至有望改善所有的自由软件的运行效率,同时它的内部结构的变化也体现出现代编译器发展的新特征。
如果linux能上网,则采用指令yum install gcc-c++来安装,安装完成后再make。
2.4.3 jemalloc/jemalloc.h:没有那个文件或目录
如果出现jemalloc/jemalloc.h:没有那个文件或目录
运行make distclean之后再make。
2.4.4 执行make install
如果make完成后继续执行make install。
2.5 查看默认安装目录:usr/local/bin
- redis-benchmark:性能测试工具,可以在自己本子运行,看看自己本子性能如何:服务启动起来后执行
- redis-check-aof:修复有问题的AOF文件,rdb和aof后面讲
- redis-check-dump:修复有问题的dump.rdb文件
- redis-cli:客户端,操作入口
- redis-sentinel:redis集群使用
- redis-server:Redis服务器启动命令
2.6 启动
在/root下面新建一个文件夹
将默认的redis.conf拷贝到自己定义好的一个路径下,进入redis的目录,将redis的配置文件复制到新建的目录下
修改复制过后的配置文件参数,修改redis.conf文件将里面的daemonize no 改成 yes,让服务在后台启动,
/usr/local/bin目录下运行redis-server,运行拷贝出存放了自定义conf文件目录下的redis.conf文件,启动reids,但是启动的是我们复制后的配置文件的,这个配置文件就是一个备份。
2.7 第一个helloworld
2.8 关闭
3 Redis启动后杂项基础知识讲解
3.1 单进程
单进程模型来处理客户端的请求。对读写等事件的响应是通过对epoll函数的包装来做到的。Redis的实际处理速度完全依靠主进程的执行效率。epoll是Linux内核为处理大批量文件描述符而作了改进的epoll,是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。
3.2 默认16个数据库
默认16个数据库,类似数组下表从零开始,初始默认使用零号库
3.3 select:切换数据库
切换到7号库
3.4 dbsize:查看当前数据库的key的数量
3.5 flushdb:清空当前库
3.6 flushall:清空全部库
3.7 统一密码管理
16个库都是同样密码,要么都OK要么一个也连接不上