哈喽,大家好,我是一条。
4月第一天,开启一个新的篇章——《高性能redis》
为什么选择写Redis,考虑以下几点:
- 个人认为,缓存、MQ、分库分表可称为并发三剑客,而缓存就是三剑客中的大哥。
- Redis的应用非常普遍,面试必问,受众人群更广。
- 相比于 Kafka 等消息中间件,Redis 较为简单,底层用 C 语言编写,阅读源码也不是很困难。
- 学完收获更多,即使你没有高并发,大数据,用了 Redis 也会锦上添花。
本系列会从安装开始,全面通关 Redis ,涉及到的内容大致如下,过程中可能会调整顺序以方便大家循序渐进的学习。
会有源码分析,也会有案例讲解,一步一步的实现分布式锁、手写LRU、彻底搞懂 IO 多路复用、集群搭建、性能优化等等。
Redis个人觉得有两本写的非常好的书:《Redis的设计与实现》和《Redis深度历险》,本专栏也会参考书中的内容,力求言简意赅,但又鞭辟入里,脚踏实地的带大家把 Redis 拿下。
好了,天也不早了,也该干正事了。
安装
由于 Redis 的 IO 多路复用依赖 Linux 底层的 epoll 机制,所以不推荐安装在 windows 系统上。 可以装虚拟机或者买一台云服务器。
1.安装 gcc 环境
前面说过底层是 C 语言编写,所以就像安装 JDK 一样,我们需要先有 gcc 环境。
代码语言:javascript复制# 查看是否已经安装
gcc -v
# gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
使用 yum 安装
代码语言:javascript复制yum install gcc-c -y
# 完成后 gcc -v 验证一下
2.下载 Redis
到中文版的官网下载安装包,然后上传到服务器。
也可以 用 wget 直接下载
代码语言:javascript复制## 官网:http://redis.cn/
wget http://download.redis.io/releases/redis-6.0.6.tar.gz
下载完成后,需要解压,编译。
代码语言:javascript复制tar -zxf redis-6.2.6.tar.gz
cd redis-6.2.6
make
3.修改配置文件
Redis 默认使用的端口是 6379 ,默认无密码。这是非常不安全的。可以通过修改其配置文件,更改端口,设置强密码,增加其安全性。
这步一定要做,而且密码要复杂,否则今天装完,明天就被挖矿,血的教训。
除此之外,还要开启远程访问和后台运行。开干吧!
打开配置文件
代码语言:javascript复制vi etc/redis.conf
修改如下
代码语言:javascript复制vi 模式下,输入 / 查找特定字符 再输入 n 跳到下一个
# 开始后台运行
daemonize yes
# 注释掉只能本地连接,即开始远程连接,也可以配置上本地的ip
# bind 127.0.0.1
# 修改端口
port 6380
# 设置密码
requirepass XXXXXXXXX
保存一下,就可以启动了。
4.启动
代码语言:javascript复制# redis-server 启动,并指定配置文件
./bin/redis-server ./etc/redis.conf
启动成功,本地先连接一下
代码语言:javascript复制# -p指定端口
./bin/redis-cli -p 6378
# auth 输入密码
auth password
# 添加key1
set key1 abc
# 查看 key1
get key1
OK,在服务器上安装完成,类似用 Navicat 连接 MySQL 一样,我们也需要一个客户端工具。
远程连接
类似工具有很多,使用比较多的有 RDM 和 ARDM。
RDM 即 Redis Desktop Manger,windows 和 mac 都有,官网下载即可。
新建一个链接,输入ip、port、password即可连接。
左侧为连接列表,展示显示 key 点击 key ,右边显示 value。
也可以用命令行操作。
打完收工。
总结
万事开头难,后面难上加难。