Redis(remote dictionary server),远程字典服务
开源的使用C语言编写,支持网络、可基于内存亦可支持持久化、k-v数据库、提供多种语言等等
直接GitHub下载压缩包解压即可。
地址:https://github.com/microsoftarchive/redis/releases/tag/win-3.2.100
开启Redis:双击redis-server.exe
文件即可。
使用客户端连接Redis:打开redis-cli.exe
即可。输入ping
命令,返回PONG
即ok。
使用tar -zxvf redis-7.0.10.tar.gz
进行解压。
yum install gcc-c++
通过gcc -v
查看版本,有版本号即成功。
但是这里有个问题,因为redis 6.0
以上的版本需要gcc高版本。所以使用以下命令升级为gcc 9.*
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile
然后进入 /opt
目录下使用make
,然后等待环境配好。
然后再次输入make install
,等待配好即可。
将/opt/redis-7.0.10/redis.conf
拷贝到/usr/local/bin
下面新建的redisconfig
目录下。
修改/usr/local/bin/redisconfig/redis.conf
文件
将其中的daemonize
的no
改为yes
在/usr/local/bin
目录下使用命令redis-server redisconfig/redis.conf
运行,
然后使用redis-cli -p 6379
可以连接redis服务器。
输入ping
,若返回为PONG
即为成功。
在连接界面输入shutdown
关闭redis连接,然后输入exit
即可。
可以再次查看redis进程看是否关闭。
使用redis-benchmark
加指定参数测试。
首先打开redis服务,输入下面命令测试:redis-benchmark -h localhost -p 6379 -c 100 -n 10000
随机截取一点来看看:
可以看到10000条请求在0.19秒就完毕!100个客户端并发!可以看到redis的速度真的非常恐怖。
redis,默认有16个数据库
默认使用的是第9个
可以使用select
进行切换不同的数据库
select 3 # 切换数据库
dbsize # 查看数据库大小
keys * # 查看所有key
flushdb # 清空当前数据库
flushall # 清空全部数据库
Redis是单线程的!
Redis是很快的,基于内存操作,CPU不是性能瓶颈,Redis瓶颈是根据机器的内存和网络带宽。
为什么单线程还这么快?
- 误区1:高性能的服务器一定是多线程的?
- 误区2:多线程(CPU上下文会切换)一定比单线程效率高
核心:Redis多有数据都放在内存中,所以说使用单线程区操作效率就是最高的,因为多线程需要CPU上下文切换,对于内存系统来说,没有上下文切换,效率就是最高的。多次读写都在一个CPU下。