目录
[TOC]
Redis是什么?
- Redis官网 、 中文官网
- Redis的全拼是Remote Dictionary Server ,即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API;属于常用的NoSQL数据库。
(NoSQl:指的是非关系型的数据库。有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称,NoSQL用于超大规模数据的存储。)
为什么要用Redis?
Redis可以完成以下功能,或者说一些功能由Redis来完成更为合适:
缓存,对于不需要经常更改,或者更改后的结果不需要实时更新的数据。可以存放在Redis里面,以此来减轻DB的压力
排行榜,如果使用传统的关系型数据库来做这个事儿,非常的麻烦,而利用能够非常方便搞定;
计算器/限速器,利用Redis中原子性的自增操作,我们可以统计类似用户点赞数、用户访问数等,这类操作如果用MySQL,频繁的读写会带来相当大的压力;限速器比较典型的使用场景是限制某个用户访问某个API的频率,常用的有抢购时,防止用户疯狂点击带来不必要的压力;
好友关系,利用集合的一些命令,比如求交集、并集、差集等。可以方便搞定一些共同好友、共同爱好之类的功能;
简单消息队列,除了Redis自身的发布/订阅模式,我们也可以利用List来实现一个队列机制,比如:到货通知、邮件发送之类的需求,不需要高可靠,但是会带来非常大的DB压力,完全可以用List来完成异步解耦;
Session共享,以PHP为例,默认Session是保存在服务器的文件中,如果是集群服务,同一个用户过来可能落在不同机器上,这就会导致用户频繁登陆;采用Redis保存Session后,无论用户落在那台机器上都能够获取到对应的Session信息。
如何使用Redis?
下载安装
- Windows系统(非常简单)
- Linux系统 (比较麻烦)
Windows系统
点击下载压缩包(只有5M大小)
解压后目录如下:
首先双击运行redis-server.exe启动服务端,(窗口不要关闭,关闭了server就关闭了)
然后运行redis-cli.exe
然后就可以在命令行中练习Redis的常见命令了1
2
3
4
5
6
7
8ping
set google http://www.google
append google .com
get google
set visitors 0
incr visitors
incr visitors
get visitors
Linux系统
我是租用的阿里云服务器,远程的linux,本地Linux同理
以下手动安装的方式,如果使用宝塔面板应该可以直接安装
- 下载
进入官网,找到底部的Download it 点击显示的最新版本直接就能下载。 - 把下载文件移动到你的Linux系统上(我是通过宝塔面板上传到服务器上的,本地Linux系统就方便了)
- 解压,找到你的文件录取运行
tar -zxvf redis-6.0.8.tar.gz
进入解压后的目录
4. 安装gccyum install gcc-c++
5. 在解压目录执行:make
编译命令
如果最后这样显示就是编译成功了
如果是如下面的图,就是编译失败了
失败的可以尝试以下两种方式解决:
更新gcc
1
2
3sudo yum install centos-release-scl
sudo yum install devtoolset-7-gcc*
scl enable devtoolset-7 bash或降低redis版本
- 在解压目录执行:
make install
安装命令 - Redis默认安装路径
/usr/local/bin
- 移动配置文件并进行设置(直接贴图了)
编辑该文件,修改:daemonize no
为daemonize yes
然后输入:wq
退出 - 启动Redis
利用我们的配置来启动redis服务,执行redis-server redis-config/redis.conf
再启动redsi客户端,执行redis-cli -p 6379
- 常用命令
查看redis的进程是否开启# ps -ef|grep redis
关闭redis服务,再客户端输入shutdown
,然后exit
退出客户端就可以了
再次查看已经没有了
性能测试
我是在Windows系统上操作的,Linux同理
在解压目录下打开命令行,输入下面的命令:.\redis-benchmark.exe -h localhost -p 6379 -c 10 -n 5000
测试10个并发连接,10000个请求
参数如下:
参考资料