Akagi201
4/9/2014 - 1:15 AM

redis.md

Redis是一个开源的高级key-value存储. 他经常被用作一个data structure server由于key可以包含strings, hashes, lists, sets和sorted sets.

Redis是一个Key-Value存储系统. 他支持存储的value类型很多, 包括string(字符串), list(链表), set(集合), zset(有序集合). 这些数据类型都支持push/pop, add/remove以及取交集和并集以及更丰富的操作, Redis支持各种不同方式的排序. 为了保证效率, 数据都缓存在内存中, 它也可以周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件.

目前全球最大的Redis用户是新浪微博.

redis 在分布式应用

redis 加载外部模块实现自定义命令

调试生成测试数据

  • debug populate 33

redis cluster 实现 SCAN 所有 key

SCAN 命令来代替 KEYS 命令

  • redis-cli --scan --pattern "*" -p 7000 只能查单个redis

radix

sentinel

redis in production

book

redis-cluster

  • redis-trib help

编译安装

tar -zxvf redis-2.8.19.tar.gz 
cd redis-2.8.19 
make
make PREFIX=/usr/local/redis install

redis集群

wireshark分析

检测redis

  • ps -ef | grep redis
  • netstat -tunpl | grep 6379
  • redis-cli

redis 命令

  • 启动: redis-server &
  • 登陆: redis-cli
  • 查看所有key: keys *
  • 查看某个key的value: hgetall macro:domains:metadata

Redis适用场合

在新浪微博Redis的部署场景很多, 大概分为如下2种:

  1. 应用程序直接访问Redis数据库.
  2. 应用程序直接访问Reids, 只有当Redis访问失败时才访问MySQL.

Redis数据库提供多种灵活的数据结构和数据操作, 为不同的大象构建不同的冰箱.

应用

  1. 取最新N个数据的操作.
  2. 排行榜应用, 取TOPN操作.
  3. 需要精确设定过去时间的应用.
  4. 计数器应用.
  5. Uniq操作, 获取某段时间所有数据排重值.
  6. 实时系统, 反垃圾系统.
  7. Pub/Sub构建实时消息系统 - redis独有.
  8. 构建队列系统.
  9. 缓存.

云平台

官网

cheatsheets

book