Redis从入门到高可用分布式实践1

第1章 Redis初识
带领听众进入Redis的世界,了解它的前世今生、众多特性、应用场景、安装配置、简单使用,可以让听众对Redis有一个全面的认识。
1-1 导学
1-2 Redis初识 试看
1-3 谁在使用Redis
1-4 redis特性目录
1-5 特性1-速度快
1-6 特性2-持久化
1-7 特性3-数据结构
1-8 特性4-多语言客户端
1-9 特性5-功能丰富
1-10 特性6-简单
1-11 特性7-复制
1-12 特性8-高可用分布式
1-13 redis典型使用场景
1-14 redis三种启动方式介绍
1-15 redis常用配置
1-16 redis安装启动演示

第1章 Redis初识
带领听众进入Redis的世界,了解它的前世今生、众多特性、应用场景、安装配置、简单使用,可以让听众对Redis有一个全面的认识。
1-1 导学

1-2 Redis初识 试看

Redis是什么\Redis的特性\Redis典型应用场景\Redis单机安装

Redis是什么
1.开源(学习、定制化、早期23.000lines of code)
2.基于键值对的存储服务系统(key-value、数据库
Java Map String value = map.get(“key”);
python Dict dictionary[“key”] = value;
Ruby\C++\NodeJS

3.多种数据结构(String\Hash Tables\Linked Lists\Sets\Sorted Sets)
在这里插入图片描述
4.高性能、功能丰富

Redis的前世今生
作者:Salvatore Sanfilippo(antirez)
是作者在制作一个网站时,mysql不能满足他的要求
在这里插入图片描述

1-3 谁在使用Redis

哪些公司在使用Redis?
在这里插入图片描述

1-4 redis特性目录

Redis的特性
1.速度块 --10w OPS 内存
2.持久化 --将数据的更新异步地保存在磁盘上
3.多种数据结构 --字符串 hash 列表 集合 有序集合
–延申:位图 地理信息
4.支持多种编辑语言 --JAVA PHP PYTHON RUBY LUA NODEJS
5.功能丰富 --发布订阅 LUA脚本 事务 pipeline(并发效率)“ 瑞士军刀”
6.简单 --不依赖外部库 单线程模型(代码短小精悍、使用简单)
7.主从复制 重点–把主节点的数据做一个副本
8.高可用、分布式 重点

1-5 特性1-速度快

10w OPS 每秒钟可以实现10万次读写,达到万级别的
数据存在哪?内存
什么语言写?C语言 5万行代码
线程模型? 单线程,多线程会成为并发的瓶颈
在这里插入图片描述
寄存器、一级缓存、二级缓存、内存、本地硬盘、远程硬盘
在这里插入图片描述
redis块的一个真正原因:内存

1-6 特性2-持久化(断电不丢数据)

把所有的数据保存在内存中,但内存的数据不具有持久化的特性,也就是说断电时无法对内存的数据进行恢复的。
所以要对数据进行持久化。
即将数据的更新异步地保存在磁盘(dump)上

1-7 特性3-多种数据结构

字符串 hash 列表 集合 有序集合
在这里插入图片描述
衍生的数据结构:位图 地理信息
BitMaps:位图,用很小的内存实现高效的存储,例如使用布隆过滤器
HyperLogLog:超小内存唯一值计数 12k 上亿数 计算每天的DAU
GEO:地理信息定位,计算纬度经度
他们本质是字符串

1-8 特性4-多语言客户端

JAVA PHP PYTHON RUBY LUA NODEJS都去支持redis数据库服务器

1-9 特性5-功能丰富

发布订阅 实现很多基于消息的功能
LUA脚本 自定义命令
事务
pipeline(提高客户端的并发效率)
“ 瑞士军刀”

1-10 特性6-简单

(代码短小精悍单机2万3千行代码分布式5万行代码、
使用简单)
不依赖外部库
单线程模型(无论是服务端还是客户端的开发都相对容易一些)

1-11 特性7-主从复制

主服务器的数据到从服务器上拷贝几分

1-12 特性8-高可用分布式

v2.8开始支持Redis-Sentinel(哨兵)高可用
v3.0开始支持Redis-Cluster 分布式

1-13 redis典型使用场景

Redis典型应用场景
1.缓存系统
2.计数器
3.消息队列系统
4.排行榜
5.社交网络
6.实时系统
在这里插入图片描述
一个用户访问app server(Java tomcat),首先会从cache中去获取(内存)使用缓存系统,有就直接返回,否则的话去storage中获取,然后不仅把数据返回,而且还要把数据缓存到cache中。
cache
storage

一条微博的转发数、评论数。increment,在单线程下计数,能保证正确性。还有视频网站的播放数。

在这里插入图片描述
消息队列系统,已经成为中间件或项目中开发的标配,成熟的消息队列系统有很多,早期的RabbitMQ、现在的Kafka、阿里开源的ActiveMQ。
reids也提供了发布订阅、阻塞队列来实现。
在这里插入图片描述

在这里插入图片描述
粉丝数、关注数、共同关注、时间轴列表
在这里插入图片描述
布隆过滤器、垃圾邮件过滤

1-14 redis三种启动方式介绍

Redis安装

$ wget http://download.redis.io/releases/redis-3.0.7.tar.gz
$ tar xzf redis-5.0.2.tar.gz
$ ln -s redis-3.0.7 redis
$ cd redis-5.0.2
$ make
$ make install

选择一个稳定的版本、解压缩、通常建立软连接,对于后期的升级比较方便、进入目录、进行编译、进行安装

Redis可执行文件说明

redis-server 可以启动Redis服务器
redis-cli 用来连接Redis命令行客户端
redis-benchmark 基准测试Redis性能测试
redis-check-aof AOF文件修复工具
redis-check-dump RDB文件修复工具
redis-sentinel Sentinel服务器(2.8以后)

三种启动方式

最简单启动 执行redis-server,会按照默认配置来启动
ps -ef|grep redis
netstat -antpl|grep redis
redis-cli -h ip -p port ping

动态参数启动
redis-server --port 6380 (默认6379)

配置文件启动
redis-server configPath

比较

生产环境选择配置启动
单机多实例配置文件开源用端口号区分开

简单的客户端链接

redis-cli -h 10.10.79.150 -p 6384
ping
set hello world
get hello
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

Redis客户端返回值

在这里插入图片描述

mget 多行字符串返回
get

1-15 redis常用配置

Redis常用配置
deamonize 是否是守护进程默认no建议yes
prot redis对外端口号
logfile redis系统日志
dir redis工作目录

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

cat redis-6380.conf |grep -v “#”|grep -v “^$”>redis-6382.conf -------------------查看配置属性清晰

[root@redis01 redis]# redis-server config/redis-6382.conf

[root@redis01 redis]# more config/redis-6382.conf
daemonize yes
port 6382
dir “/opt/moudels/redis/data” ----需要自己建立文件夹
logfile “6382.log”
[root@redis01 redis]#

日志位置:

/opt/moudels/redis/data

1-16 redis安装启动演示

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值