Redis是什么
开源
基于键值的存储服务系统
多种数据结构
高性能、功能丰富
Redis的特征
速度快:10w OPS
数据存在哪里:内存(计算机存储的介质:Register>L1 Cache>L2 Cache>Main Memory>Local Disk>Remote Disk)
(每秒读写次数:千万级;随机读写延迟:80nm;访问宽带:5GB)
什么语言写的:C语言(50000 line)
线程模型:单线程
持久化:RDB、AOF
Redis所有数据保持在内存中,对数据的更新将异步地保存到磁盘上。
多种数据结构:Strings/Hash Tables/Linked Lists/Sets/Sorted Sets
衍生数据结构:BitMaps:位图/HyperLogLog:超小内存唯一值计数/GEO:地理信息定位
支持多种编辑语言:基于TCP的通信协议
Java/PHP/Python/Ruby/Lua/node.js
功能丰富:发布订阅/Lua脚本/简单的事务/pipeline(提高客户端并发效率)
简单:不依赖外部库/单线程模型
主从复制:主服务器、从服务器
高可用:Redis-Sentinel(V2.8)支持高可用
分布式:Redis-Cluster(V3.0)支持分布式
Redis典型应用场景
缓存系统/计数器(转发、点赞、评论)/消息队列系统/排行榜/社交网络/实时系统
Redis安装(Linux)
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
cd redis
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的启动方法
最简启动
动态参数启动
配置文件启动:推荐单机多实例配置文件可以用端口区分开
Redis客户端连接
redis-cli -h ip -p port
ping
Redis客户端返回值
状态回复/错误回复/整数回复/字符串回复/多行字符串回复
Redis常用配置
daemonize:是否是守护进程
port:Redis对外端口号(默认6379)
logfile:Redis系统日志
dir:Redis工作目录
Redis通用命令
keys * O(n) 遍历所有key
dbsize O(1) 计算key的总数
exists key O(1) 检查key是否存在 存在返回1,不存在返回0
del key O(1) 删除指定的key-value
expire key seconds O(1) key在seconds秒后过期
ttl key O(1) 查看key剩余的过期时间 -1代表key存在,并且没有过期时间;-2代表key已经不存在了
persist key O(1) 去掉key的过期时间
type key O(1) 返回key的类型 string hash list set zset none
Redis数据结构的内部编码(基于时间和空间选择)(redisObject:数据类型、编码方式、数据指针、虚拟内存、其它)
string:raw/int/embstr
hash:hashtable/ziplist
list:linkedlist/ziplist
set:hashtable/intset
zset:skiplist/ziplist
|
|