目录
1.Redis简介
1.1Redis简介
Redis 是当前互联网世界最为流行的 NoSQL(Not Only SQL)数据库。NoSQL 在互联网系统中的作用很大,因为它可以在很大程度上提高互联网系统的性能。
Redis 具备一定持久层的功能,也可以作为一种缓存工具。对于 NoSQL 数据库而言,作为持久层,它存储的数据 是半结构化的,这就意味着计算机在读入内存中有更少的规则,读入速度更快。
对于那些结构化、多范式规则的数据库系统而言,它更具性能优势。作为缓存,它可以支持大数据存入内存中,只 要命中率高,它就能快速响应,因为在内存中的数据读/写比数据库读/写磁盘的速度快几十到上百倍
1.2.Redis特点
Redis:Remote Dictionary Server(远程字典服务器)。是完全开源免费的,用C语言编写的,遵守BSD协议,是一 个高性能的(key/value)分布式内存数据库,基于内存运行并支持持久化的NoSQL数据库,是当前最热门的 NoSQL数据库之一,也被人们称为数据结构服务器。
Redis与其他key - value缓存产品有以下三个特点: 1. Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。 2. Redis不仅仅支持简单的key - value类型的数据,同时还提供list、set、zset、hash等数据结构的存储。 3. Redis支持数据的备份,即master - slave模式的数据备份。
1.3.为什么要用Redis
高性能: 假如用户第一次访问数据库中的某些数据。这个过程会比较慢,因为是从硬盘上读取的。将该用户访问的数据存在 缓存中,这样下一次再访问这些数据的时候就可以直接从缓存中获取了。操作缓存就是直接操作内存,所以速度相 当快。如果数据库中的对应数据改变的之后,同步改变缓存中相应的数据即可! 高并发: 直接操作缓存能够承受的请求是远远大于直接访问数据库的,所以我们可以考虑把数据库中的部分数据转移到缓存 中去,这样用户的一部分请求会直接到缓存这里而不用经过数据库。
1.4.Redis与memcached的区别
2.Redis安装
2.1.yum安装
yum install epel-release --下载fedora的epel仓库 yum install redis -- 安装redis数据库
2.2.源码安装
首先需要安装tcl8.5版本以上,以解决 make test报错问题
TCL8.6安装
wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz
tar xzvf tcl8.6.1-src.tar.gz -C /usr/local/
cd /usr/local/tcl8.6.1/unix/
./configure
make
make install
安装完成后,再安装redis
安装源码编译支持库:yum install gcc gcc-c++
下载包:wget https://download.redis.io/releases/redis-6.2.3.tar.gz
解压包:tar xzf redis-6.2.3.tar.gz
进入redis目录:cd redis-6.2.3
编译安装:make
编译测试:make test
编译安装历史清除:make distclean
3.Redis启动和停止
3.1.Redis的启动和关闭
不指定配置文件启动
src/redis-server
会产生启动警告:
解决办法如下:
echo 1024 > /proc/sys/net/core/somaxconn
在/etc/sysctl.conf 下添加如下内容:
net.ipv4.ip_forward = 1
vm.overcommit_memory=1
指定配置文件启动
src/redis-server redis.conf
前端启动后,终端页面会进入redis控制台,无法进行其他操作,可以在redis.conf文件中修改为后台启动。
将文件中的daemonize no 修改为yes即可
daemonize yes
前台启动的关闭操作
强制关闭:Ctrl+c
kill -9 进程
正常关闭:src/redis-cli shutdown
•强制关闭只需在Redis控制台直接执行即可(redis可能会丢失部分数据)。
•正常关闭需要另开一个终端窗口才可执行(redis不会丢失数据,推荐使用)。
一旦前端启动的关闭命令执行,则redis控制台关闭,redis服务也会停掉。
3.2.redis基础知识
1、单进程:单进程模型来处理客户端的请求。对读写等事件的相应。是通过epoll函数的包装来做到的。Redis的 实际处理速度完全依靠主进程的执行效率。Epoll是linux内核为处理大批量文件描述符而作了改进的epoll,是 linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的下 同CPU利用率。
2、默认16个库,类似数组下标从零开始,初始默认使用零号库。
3、select 命令切换