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. 实时系统:
垃圾邮件处理系统,布隆过滤器
posted @ 2020-09-05 23:00  给你加马桶唱疏通  阅读(92)  评论(0编辑  收藏  举报