redis初识
导学
盛赞redis
高性能key-value服务器多种数据结构丰富的功能高可用的分布式支持
redis初识
定义
Redis是一个使用ANSIC编写的开源、支持网络、基于内存、可选持久性的键值对存储数据库
特性
开源多种数据结构基于键值的存储服务系统高性能,功能服务
redis的前世今生
.
谁在使用redis
githubtwitter微博StackOverflow阿里巴巴百度美团搜狐......
redis特性目录
速度快持久化多种数据结构支持多种编程语言功能丰富简单:代码短小精悍主从复制高可用、分布式
特性1:速度快
10wQPS
原因
数据存在内存c语言编写单线程编写
.
.
特性2:持久化
redis所有的数据保存在内存中,对数据的更新将异步地保存到磁盘上
特性3:数据结构
.
特性4:多语言客户端
javaphppythonrubyluanodejs
特性5:功能丰富
发布订阅lua脚本事务pipeline
特性6:简单
行代码实现核心功能不依赖外部库单线程模型
特性7:复制
.
特性8:高可用
redis-sentinel支持高可用分布式redis-cluster支持分布式
redis典型使用场景
缓存系统
.
计数器
.
消息队列系统
.
排行榜
.
社交网络实时系统
redis三种启动方式
redis安装(maclinux)
.
redis可执行文件说明
.
.
reids三种启动方法
最简启动(采用默认配置文件启动)
.
验证
.
配置文件启动(将需要配置的参数写入文件)
.
动态参数启动
.
三种启动方式比较
生产环境选择配置启动单机多实例配置文件可以用端口区分开
redis客户端连接
.
redis客户端返回值
.
redis常用配置
.
redis安装启动(配置文件方式)
配置方式
配置文件
.
启动
.
检查
.
日志文件
.
API的理解和使用
通用命令
.
注意keys命令一般不再生产环境使用
**演示**
.
.
数据结构和内部编码
图示
.
reidsObject
.
单线程
定义
单线程在程序执行时,所走的程序路径按照连续顺序排下来,前面的必须处理好,后面的才会执行。
.
单线程为什么这么快
纯内存非阻塞IO避免线程切换和竞态消耗
使用单线程要注意什么
一次只能运行一条命令拒绝长(慢)命令keysflushallflushdbslowluascriptmutil/execoperatebigvalue(collection)
string
结构
.
可以是字符串(json);数字,以及二进制
使用场景
缓存计数器分布式锁
API
.
.