01 Redis介绍安装配置
一. Redis是什么
介绍
1. 开源:早起版本2w3千行
2. 基于键值对的存储系统:字典形式
3. 多种数据结构:字符串,hash,列表,集合,有序集合
4. 高性能,功能丰富
哪些公司在用?
github,twitter,stackoverflow,阿里,百度,微博,美团,搜狐
二. Redis特性
# 1. 速度快:
10w ops(每秒10w读写),数据存在内存中,c语言实现,单线程模型
# 2. 持久化:
rdb和aof
# 3. 多种数据结构:
5大数据结构
# 4. BitMaps位图:
布隆过滤器 本质是 字符串
# 5. HyperLogLog:超小内存唯一值计数,12kb HyperLogLog 本质是 字符串
# 6. GEO:
地理信息定位 本质是有序集合
# 7. 支持多种编程语言:
基于tcp通信协议,各大编程语言都支持
# 8. 功能丰富:
发布订阅(消息) Lua脚本,事务(pipeline)
# 9. 简单:
源代码几万行,不依赖外部库
# 10. 主从复制:
主服务器和从服务器,主服务器可以同步到从服务器中
# 11. 高可用和分布式:
2.8版本以后使用redis-sentinel支持高可用
3.0版本以后支持分布式(提示: 3.0到5.0之间搭建集群需要使用rubby)
三. Redis单机安装
1. 下载安装
# 下载
wget http://download.redis.io/releases/redis-5.0.7.tar.gz
# 解压
tar -xf redis-5.0.7.tar.gz
# 建立软连接
ln -s redis-5.0.7 redis
cd redis
make && make install
mv ~/redis-5.0.7 /opt/ # 将redis移动到存放到第三方安装包位置的opt中
ln -s /opt/redis-5.0.7/src/ /usr/bin/redis
# 在src目录下可以看到如下的可执行文件, 通过命令执行对应的任务
# redis-server # redis服务器
# redis-cli # redis命令行客户端
# redis-benchmark # redis性能测试工具
# redis-check-aof # aof文件修复工具
# redis-check-dump # rdb文件检查工具
# redis-sentinel # sentinel服务器,哨兵
# redis作者对windows维护不好,window自己有安装包
# 卸载redis
# 1、查看redis进程;
ps aux | grep redis
# 2、kill掉进程;
kill 进程id
pkill -9 进程名
# 3、进入到redis目录
cd /usr/local/
# 4、删除redis对应的文件
rm -f /usr/local/redis/bin/redis*
rm -f /usr/local/bin/redis*
# 5、删除对应的文件
rm -rf redis
2. 三种启动方式
1) 最简启动
# 最简启动
redis-server
ps -ef |g rep redis # 查看进程
netstat -antpl|grep redis # 查看端口
redis-cli -h ip -p port ping # 命令查看
2) 动态参数启动
# 动态参数启动
redis-server --port 6380 --host 127.0.0.1 # 启动,监听6380端口
3) 配置文件启动
mkdir /opt/redis-5.0.7/data
mkdir /opt/redis-5.0.7/conf/
vim /opt/redis-5.0.7/conf/redis_6379.conf
i
# 是否以守护进程启动
daemonize yes
# 进程号的位置,删除
pidfile /var/run/redis.pid
# 端口号
port 6379
# 工作目录: 在redis目录下新建data目录
dir "/opt/redis-5.0.7/data"
# 日志位置
logfile "6379.log"
# 支持远程连接
bind 0.0.0.0
# 关闭安全模式
protected-mode no
# 设置密码
requirepass 123456
ESC
:wq
# 启动redis
redis-server /opt/redis-5.0.7/conf/redis_6379.conf
# 查看进程
ps aux | grep redis
# 查看日志
cd /opt/redis-5.0.7/data/
cat 6379.log
3. 客户端连接(命令)
# 客户端连接
redis-cli -h 127.0.0.1 -p 6379
ping # 返回PONG
# 有密码的情况可以两种登陆方式
# 方式一: redis-cli -h 地址 -p 端口 -a 密码
redis-cli -h 127.0.0.1 -p 6370 -a 123456
# 方式二: 先登陆,再通过auth输入密码
auth 密码
# redis-cli进入查看redis的配置信息(提示: 可以直接在交互式命令下修改 -> 安全问题redis入侵)
# 107对建值
CONFIG GET *
# 设置最大使用的内存(提示: 0表示不限制)
CONFIG SET maxmemory 128M
# 设置密码
CONFIG set requirepass 123456
# 保存到配置文件
CONFIG rewrite
4. redis返回值
1. 状态回复:ping # PONG
2. 错误回复:hget hello field # (error)WRONGTYPE Operation against
3. 整数回复:incr hello # (integer) 1
4. 字符串回复:get hello # "world"
5. 多行字符串回复:mget hello foo # "world" "bar"
四. Redis典型使用场景
# 1. 缓存系统:
使用最广泛的就是缓存
# 2. 计数器:
网站访问量,转发量,评论数(文章转发,商品销量,单线程模型,不会出现并发问题)
# 3. 消息队列:
发布订阅,阻塞队列实现(简单的分布式,blpop:阻塞队列,生产者消费者)
# 4. 排行榜:
有序集合(阅读排行,点赞排行,推荐(销量高的,推荐))
# 5. 社交网络:
很多特效跟社交网络匹配,粉丝数,关注数
# 6. 实时系统:
垃圾邮件处理系统,布隆过滤器