大家学实战的时候可以把我的文章翻出来,就不用自己记笔记了。节省大家学习成本。
特点
- key-value
- Java Map : String value = map.get(“key”)
- Python Dict : dictionary["key "] value
- …
- BitMaps 位图 布隆过滤器
- HyperLoglog 超小内存唯一值计数
- GEO 地理信息定位
- 速度快
- 10w OPS 即operation per second 每秒操作次数。意味着每秒对Redis的持久化操作
- 数据存储在内存
- C语言
- 单线程
- 持久化
- 内存(数据) -》 异步 硬盘 RDB AOF
- 高可用 Redis-Sentinel(v2.8)
- 分布式 Redis-Cluster(v3.0)
- 主从复制
- 高可用分布式
- 功能丰富
- 发布订阅
- 事务
- Lua脚本
- pipeline
- simple
- 23000 lines of core code
- 不依赖外部库(like libevent)
- 单线程模型
典型应用场景
- 缓存系统
- 计数器
- 消息队列系统 发布订阅
- 排行榜
- 社交网络
- 实时系统
- 布隆过滤器
Install
wget http://download.redis.io/releases/redis-3.0.7.tar.gz
tar-xzf redis-3.0.7.tar.gz
In-s redis-3.0.7 redis
cd redis
make && make install
$ wget http://download.redis.io/releases/redis-2.8.17.tar.gz
$ tar xzf redis-2.8.17.tar.gz
$ cd redis-2.8.17
$ make
Start method
- 最简启动
- 动态参数启动
- 配置文件启动
$ cd src
$ ./redis-server
验证方式
ps -ef | grep redis
netstat -antpl |grep redis
redis-cli -h ip -p port ping
动态参数启动
redis-server --port 6379
配置文件启动
redis-server 配置文件
验证
ps -ef | grep redis
netstat -antpl | grep redis
redis-cli -h ip -p port ping
.P.S
- 生成环境选择配置启动
- 单机多实例配置文件可以用端口区分开
客户端连接
Common Configuration
通用命令
key
- keys*
- 热备从节点
- scan
dbsize
exists
del
type
数据结构和内部编码
- 空间换时间
- 时间换空间
单线程
Redis API
字符串
- 场景
- 缓存
- 分布式锁
- 计数器
- 等
hash 哈希
string和hash对比
用户信息
list 列表
Set 集合
- 无序
- 无重复
- 集合间操作
- smembers 无序,小心使用(数据过大时)
集合间操作
zset 有序集合
- 无重复元素
- 列表 -> 可以有重复元素
zadd
zrem
zscore
zincrby
zcard
zrange
zrangebyscore
zcount
zremrangebyrank
zremrangebyscore
![图片描述][1]