一、Redis的概念
Redis是一个NoSql的数据库,不使用sql语句实现数据的CRUD,而且数据保存到内存中的,那么在内存数据操作是非常快的,而我们之前的mysql等关系数据库的数据保存在磁盘中的,访问的的速度相对慢一点,不适合高并发的访问,而redis适合于高发的访问,可以实现每秒15W次的访问量,在redis之前出现过一个memcache数据库,也是一款NoSql的数据库,两者之间有什么区别呢?
面试题:Redis和memcache的区别是什么?
1、redis的数据不但可以保存到内存中,还可以保存到磁盘中,而memcache只能保存到内存中
2、redis可以保存key=value结构的数据之外还能保存list,set、hash等结构的数据,而memcache只能保存key=value结构的数据
3、redis是单线程型的访问,而memcache是多线程模型
面试题:Redis可以做什么?
1、我使用过Redis实现过Nginx集群中web容器的session序列化操作
2、可以使用Redis实现分布式锁
3、使用Redis轻松的实现商品的秒杀功能
二、Redis的安装和编译
1.下载安装包(在官网下载即可https//redis.io)
2、上传到linux系统,把redis的开发包解压到src目录下
tar zxvf /srv/ftp/redis-4.0.2.tar.gz -C /usr/local/src/
3、解压完后进入redis的源码文件夹进行编译
cd /usr/local/src/redis-4.0.2/
root@ubuntu:/usr/local/src/redis-4.0.2# make
root@ubuntu:/usr/local/src/redis-4.0.2# make install
4、创建redis的工作目录
root@ubuntu:/usr/local# mkdir -p /usr/local/redis/{bin,erc}
|-bin:存的是可执行文件的路径
|-etc:保存的是redis的配置文件信息
5、创建数据的保存目录
root@ubuntu:/usr/local# mkdir -p /usr/local/redis/{bin,erc}
|- db:放数据
|-run:保存pid的信息(进程编号)
|-logs:所有的日志
6、在源代码目录中将可执行文件拷贝到我们自己定义的bin中
进入到如下的目录
cd /usr/local/src/redis-4.0.2/src/
查询出所有的以redis开头的文件
![](https://img.haomeiwen.com/i11949143/8d5e09875350e632.png)
拷贝文件
root@ubuntu:/usr/local/src/redis-4.0.2/src# cp redis-server redis-cli redis-benchmark /usr/local/redis/bin
redis-service:redis的服务启动
redis-cli:redis的客户端连接
redis-benchmark:redis的性能测试
二、Redis的相关配置
redis是一个内存数据库,所以我们将所有的内存都分配给redi的服务进程
1、内存配置(查看内存配置,开始是什么都没有的)
vim /etc/sysctl.conf
2、我们只需要将如下的内容写入到该文件中即可
echo “vm.overcommit_memory=1” >>/etc/ sysctl.conf
vim /etc/sysctl.conf(查看配置)
![](https://img.haomeiwen.com/i11949143/e032488cc91b7be4.png)
3、让配置立即生效
root@ubuntu:/usr/local/redis/bin# /sbin/sysctl -p
![](https://img.haomeiwen.com/i11949143/791ea129e6643927.png)
4、将redis的核心配置文件拷贝到工作目录中
root@ubuntu:/usr/local/redis/bin# cd /usr/local/src/redis-4.0.2/
root@ubuntu:/usr/local/src/redis-4.0.2# cp redis.conf /usr/local/redis/etc
5、修改上面拷贝的配置文件,让其启动的时候后套启动
root@ubuntu:/usr/local/redis/etc# vim redis.conf
port 6379:redis监听的端口号
daemonize no:设置为yes后台启动,其实就睡设置为一个守护进程
pidfile /usr/data/redis/run/redis_6379.pid:进程编号的保存路径
loglevel verbose:设置日志级别
logfile /usr/data/redis/logs/redis.log:日志文件的定义
dir /usr/deta/redis/db/ 存放数据的目录
6、之后使用后台的方式启动redis数据库
root@ubuntu:/usr/local/redis/bin# redis-server /usr/local/redis/etc/redis.conf
7、查看进程
root@ubuntu:/usr/local/redis/bin# ps -ef|grep redis
![](https://img.haomeiwen.com/i11949143/6fa72a2e2d925dfd.png)
三、实现客户端的连接
1、进入目录下
cd /usr/local/redis/bin/
2、查看帮助文档
redis-cli – hell
3、启动redis的服务
cd /usr/local/redis/bin
./redis-server /usr/local/redis/etc/redis.conf
4、直接在本机上连接redis数据库
redis-cli –p -6379
现在是本机进想连接,所以不需要写上redis所在的主机的IP地址
5、测试
设置数据:set sun nihao
取得数据:get sun
清空数据:flushdb
选择数据库:select
退出:ctrl+c
6、性能测试:
关注每秒(per second)能处理多少请求(request)
使用“redis-benchmark”就是可以模拟很多人共同访问数据库的操作
查看选项:redis-benchmark –hell
-c:模拟连接的客户端的数量
-d:设置模拟数据的大少,每次请求处理的数据
-p:定义管道数量
-n:定义每个用户请求的次数,每个数据1000字节,每用户发送10W次请求
7、模拟500个用户同时发送请求(进入redis的bin目录)
root@ubuntu:/usr/local/redis/bin# redis-benchmark -c 500 -d 1000 -n 100000
![](https://img.haomeiwen.com/i11949143/0fa9abade3c681ff.png)
网友评论