# 一、Redis是什么
* 基于键值的存储服务系统
# 二、Redis的特性
* 速度快
* 10W OPS
* 数据存在内存中
* 用C语言编写(50000 line,3.0提供了集群分布式的功能,实际只有23000行)
* 单线程
* 持久化
* Redis所有数据保存在内存中,对数据的更新将异步地保存到磁盘上。
* RDB 和 AOF 这两种方式来做数据持久化
* 多种数据结构
* String:字符串
* Hash:哈希
* List:列表
* Set:集合
* zset:有序集合
* BitMaps:位图
* HyperLogLog : 超小内存唯一值计数
* GEO: 地理信息定位
* 支持多种编程语言
* 功能丰富
* 发布订阅
* Lua脚本
* 事务
* pipeline
* 简单
* 不依赖外部库
* 单线程模型
* 核心代码只有23000行
* 主从复制
* 高可用、分布式
* Redis-Sentinel v2.8支持高可用
* Redis-Cluster v3.0支持分布式
# 三、Redis典型使用场景
* 缓存系统
* 用户访问App Server , 从缓存中获取数据,如果有就返回,没有就去数据库中获取
* 计数器
* 消息队列系统:
* 排行榜:zset
* 社交网络
* 实时系统
# Redis三种启动方式
* Redis可执行文件说明
* redis-check-aof:AOF文件修复工具
* redis-check-dump:RDB文件检测工具
* redis-sentinel: Sentinel服务器(2.8以后)
* 最简单启动redis
* redis-server
* 动态参数启动redis
* redis-server --port 6380
* 配置启动Redis
* redis-server configPath
* 登录方式
* 本地 `redis-cli`
* 远程 `redis-cli -h 47.104.28.120 -p 6379 -a '密码' `
# Redis常用配置
`配置文件路径:/etc/redis/redis.conf`
`copy配置文件并过滤#和空格
cat redis-conf | grep -v "#" | grep -v "^$" > redis-6380.conf`
| 名称 | 默认值 | 描述 |
| ------------- | -------- | ------------ |
| daemonize | yes| 是否是守护进程(no \| yes) |
| port | 6379 | Redis对外端口号 |
| logfile | /var/log/redis/redis-server.log | Redis系统日志 |
| dir | /var/lib/redis | Redis工作目录 |
| bind | 127.0.0.1 | 允许访问的地址(推荐 0.0.0.0 允许所有) |