Redis(二)------Redis入门及安装
3、安装Redis
3.1 Windows下安装
- 在Githup下载,但是官方不建议在Windows上搭建,推荐在Linux上搭建使用
- 下载完毕得到压缩包,解压到自己电脑的环境目录即可,非常小,只有5M左右
- 开启服务,运行
redis-server.exe
即可 - redis默认端口号:6379
- 不要关闭服务,使用Redis客户端来连接redis,运行
redis-cli.exe
,输入ping
命令,测试是否连接,输出PONG
证明连接成功 - 存入数据
set name zzz
,取出数据get name
,输出zzz
,就像key-value键值对 - Windows操作系统下,使用Redis相对简单,但Redis官方推荐使用Linux去开发
3.2 Linux下安装
-
Redis官网:CRUG网站 (redis.cn)
-
下载安装包,将安装包传到Linux系统中
-
解压安装包,
tar -zxvf redis-6.0.6.tar.gz
- 进入解压后的文件,可以看到Redis的配置文件
redis.conf
-
安装基本环境:
yum install gcc-c++
-
更新gcc版本到7:
sudo yum install centos-release-scl
,sudo yum install devtoolset-7-gcc*
,scl enable devtoolset-7 bash
-
执行
make
命令,会配置所有需要的文件,需要部分时间
- redis默认安装路径:
usr/local/bin
,如果找不到,去redis中的src目录,笔者是在src目录中找到的
- 将redis配置文件复制到当前目录下:新建文件夹
mkdir myredisconfig
,复制cp /usr/local/redis-6.0.6/redis.conf myredisconfig
- 注意:新建myredisconfig时,放在redis目录下,不要放在src目录中!!!!!!
- 之后使用这个配置文件进行启动!
- Redis默认不是后台启动,修改配置文件,进行后台启动,修改配置文件,改为yes,这样就可以默认后台启动啦
- 启动Redis服务:
./redis-server myredisconfig/redis.conf
- 测试是否链接成功:
./redis-cli -p 6379
,使用Redis链接指定端口号
- 基本命令
- 查看Redis进程是否开启:
ps -ef|grep redis
- 如何关闭Redis服务?
shutdown
,exit
4、Redis入门
4.1 Redis是什么
- Redis(Remote Dictionary Server),即远程字典服务。是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并且提供多种语言API。被人称为结构化数据库。
4.2 Redis可以做什么?
-
内存存储、持久化,内存是断电即失、所以说持久化很重要!(rdb、aof)
-
效率高,可以用于高速缓存
-
发布订阅系统
-
地图信息分析
-
计时器、计数器
-
…
-
Redis中文官网:CRUG网站 (redis.cn)
4.3 Redis性能测试
-
redis-benchmark
是一个压力测试工具,官方自带的性能测试工具 -
Redis性能测试是通过同时执行多个命令实现的
-
Redis性能测试基本命令:
redis-benchmark [option] [option value]
,该命令是在redis目录下执行的,而不是redis客户端内部命令 -
Redis性能测试工具可选参数
序号 | 选项 | 描述 | 默认值 |
---|---|---|---|
1 | -h | 指定服务器主机名 | 127.0.0.1 |
2 | -p | 指定服务器端口 | 6379 |
3 | -s | 指定服务器socket | |
4 | -c | 指定并发连接数 | 50 |
5 | -n | 指定请求数 | 10000 |
6 | -d | 以字节的形式指定SET/GET值的数据大小 | 3 |
7 | -k | 1 = keep alive 0 = reconnect | 1 |
8 | -r | SET/GET/INCR 使用随机key,SADD使用随机值 | |
9 | -P | 通过管道传输请求 | 1 |
10 | -q | 强制退出redis,仅显示query/sec值 | |
11 | -csv | 以CSV的格式输出 | |
12 | -l | 生成循环,永久执行测试 | |
13 | -t | 仅运行以逗号分隔的测试命令列表 | |
14 | -I | Idle模式,仅打开N个idle链接并等待 |
4.3.1 实例一
- 同时执行10000个请求来检测性能:
./redis-benchmark -n 10000 -q
4.3.2 实例二
- 100个并发连接100000个请求:
./redis-benchmark -h localhost -p 6379 -c 100 -n 100000
4.4 基本知识
-
Redis默认有
16
个数据库,默认使用的是第0
个,可以使用select
命令进行切换数据库:select 要切换数
,例:select 3
-
查看DB大小:
DBSIZE
,仅针对当前数据库 -
清空当前数据库:
flushdb
-
清空全部数据库的内容:
FLUSHALL
-
查看数据库中所有的key:
key *
-
Redis是
单线程
的!Redis是基于内存操作的,CPU不是Redis的性能瓶颈,Redis的瓶颈是机器的内存
和网络带宽
,既然可以使用单线程来实现,所以就使用了单线程。 -
官方提供数据为100000+的QPS,完全不比Memcache差
-
为什么Redis单线程还这么快?
- 误区:高性能的服务器不一定是多线程的
- 误区:多线程(与CPU有关)不一定比单线程效率高
- 核心:Redis是将所有的数据全部放在内存中,所以说,使用单线程去操作效率最高(CPU上下文切换,会耗时),对于内存系统来说,如果没有上下文切换,效率就是最高的。多次读写都是在一个CPU上,所对于一个内存来说,单线程就是最佳方案