Redis初识
- Redis是什么(开源 基于键值的存储服务系统 多种数据结构 高性能功能丰富 antirez是Redis的作者) <br />
- Java Map String value = map.get("key") Python Dict dictionary["key"] = value Ruby C++ NodeJS
- Redis的特性回顾(速度快 持久化 多种数据结构 支持多种编程语言 功能丰富 简单 主从复制 高可用分布式)
- Redis单机安装
- Redis典型使用场景
哪些公司在使用Redis
GitHub twitter stackoverflow 阿里巴巴 美团 百度 微博 搜狐 ......
Redis的特性
- 速度快
10w OPS
数据存在哪-----存在内存中,服务器的内存读取非常快
什么语言写------C语言(50000line)
线程模型------单线程
- 持久化(断电不丢数据)
Redis所有数据保持在内存中,对数据的更新将异步地保存在磁盘上
- 多种数据结构
Strings/Blobs/Bitmaps(位图) Hash Tables(objects!) Linked Lists Sets Sorted Sets
HyperLogLog:超小内存唯一值计数
GEO:地理信息定位
- 支持多钟编程语言(JAVA python php Ruby lua nodejs)
- 功能丰富(发布订阅 Lua脚本 pippeline 事务)
- 简单(不依赖外部库(like libevent)单线程模型)
- 主从复制
- 高可用分布式(高可用--Redis-Sentinel(v2.8)支持高可用 分布式 Redis-Cluster(v3.0)支持分布式)
Redis典型应用场景
- 缓存系统
APP Server cache Storage
- 计数器
- 消息队列系统
- 排行榜
- 社交网络
- 实时系统
Redis安装
- Redis安装
wget http://download.redis.io/releases/redis-3.0.7.tar.gz
tar -xzf redis-3.0.7.tar.gz
ln -s redis-3.0.7 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
配置文件启动
redis-server configPath
比较
1.生产环境选择配置启动
2.单机多实例配置文件可以用端口区分开
- 简单的客户端连接
$ redis-cli -h 10.10.79.150 -p 6384
ping
set hello world
get hello
Redis客户端返回值
状态回复ping- PONG
错误回复hget hello field
整数回复 incr hello --返回1
字符串回复 get hello
多行字符串回复 mget hello foo
Redis常用配置
daemonize => 是否是守护进程(no|yes)建议yes
port =>Redis对外端口号
logfile =>Redis系统日志
dir=>Redis工作目录
6379是在手机按键上MERZ对应的号码
RDB config
AOF config
slow Log config
maxMemory等等