• 1. 2010-7亿播畅游Redis实践李强 2012-3-30
  • 2. 第一章、redis介绍第二章、redis安装、配置以及启动第三章、redis主从、持久化第四章、redis 常用API介绍第五章、redis客户端介绍第六章、redis案例分享
  • 3. Redis介绍Redis is an open source, advanced key-value store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets and sorted sets.第一章Redis介绍
  • 4. 一、Redis安装 Redis官方网站:http://redis.io Redis下载地址: http://redis.io/download Redis安装: 第二章redis安装、配置以及启动
  • 5. 第二章 二、Redis配置文件redis.conf介绍 daemonize yes/no 是否守护进程运行 pidfile redis.pid 进程pid文件名 port 6379 redis启动端口 timeout 300 redis连接超时时间(单位:秒) loglevel debug log日志文件级别debug 、verbose、notice、warning logfile ./logs/stdout.log log日志文件路径 databases 16 数据库数量,默认16个 save 900 1 保存策略,如果900秒有一个key变化就调用save命令 dbfilename dump.rdb 持久化文件名 dir ./db/ 持久化文件目录 slaveof 从redis配置 maxclients 128 允许最大的客户端连接数,默认不限制 maxmemory 500MB redis允许使用的最大内存 appendonly no 是否开启aof持久化模式 appendfsync no aof持久化策略always、 everysec、 no redis安装、配置以及启动
  • 6. 第二章 三、启动Redis 启动方法 ./redis-server redis_cute.conf 查看进程 ps -ef|grep redis 连接测试 ./redis-cli -p 6381 查看redis基本状况 ./redis-cli -p 6381 info 监控redis实时数据 ./redis-cli -p 6381 monitor 关闭redis服务 ./redis-cli -p 6381 shutdown redis安装、配置以及启动
  • 7. 一、Redis主从配置 配置方式 slaveof 特点:一主可以多从,从还可以再配置从,主从复制不会阻塞主 启动主从服务,先启动主redis,再启动从 redis,因为从redis要依赖主redis Redis主从配置相关资料 http://redis.io/documentation http://www.hoterran.info/redis_replication http://blog.sina.com.cn/s/blog_6265c8a10100qu3u.html http://blog.sina.com.cn/s/blog_7530db6f0100vegl.html 第三章Redis主从、持久化
  • 8. 二、Redis持久化 持久化方式:快照,AOF(Append-only file) 快照:save 900 1每次快照持久化都是将内存数据完整写入到磁盘一次,会引起大量的磁盘io操作,可能会严重影响性能,有一定几率丢失数据。 AOF: appendonly yes 以追加的方式将每次修改的数据写入.aof文件中,对服务性能影响小,但持久化文件会越来越大,特别是写频繁的应用。 Redis持久化相关资料 http://redis.io/topics/persistence http://www.cnblogs.com/redcreen/archive/2011/02/15/1955520.html http://www.hoterran.info/redis_persistence 第三章Redis主从、持久化
  • 9. StringsKeysListsHashesSorted SetsSetsTransactionsPub/Sub第四章ConnectionServerRedis 常用API介绍
  • 10. 一、Keys相关命令 DEL key [key ...] 删除一个或者多个key EXISTS key 查看key是否存在 EXPIRE key seconds 设置key过期的时间(单位:秒) EXPIREAT key timestamp 设置key到期的unix时间戳 KEYS pattern 查询keys,可以使用正则表达式 MOVE key db 将key移动到指定的库 PERSIST key 取消key的过期时间 RENAME key newkey 将key重命名为newkey RANDOMKEY 随机获取一个key TTL key 查看key的过期时间 TYPE key 查看key的类型第四章Redis 常用API介绍
  • 11. 二、Strings相关命令 SET key value 设置key、value GET key 获得一个key的值 GETSET key value 设置一个key的值,并获取设置前的值 INCR key 对key执行原子加1操作 INCRBY key increment 对key执行原子加指定值操作 DECR key 对key执行原子减1操作 DECRBY key decrement 对key执行原子减指定值操作 MSET key value [key value ...] 一次设置多个key-value键值对 MGET key [key ...] 一次获取多个key的值 SETEX key seconds value 设置key-value的同时设置过期时间 SETNX key value 设置key-value仅当key不存在时成功 STRLEN key 返回key对应值的长度,只有值为String类型时有效 第四章Redis 常用API介绍
  • 12. 三、Hashs相关命令 HSET key field value 设置key的field-value HGET key field 获取集合里面field的值 HDEL key field [field ...] 删除key里面的一个或多个field HEXISTS key field 判断集合里面是否有field字段 HGETALL key 获取集合里面的所有field-value HINCRBY key field increment 为集合里面的field执行原子加操作 HKEY Skey 获取集合里面的所有field HLEN key 获取集合里面field的数量(元素个数) HMGET key field [field ...] 获取集合里面知道field的value HMSET key field value [field value ...] 设置多个field-value HVALS key 获取集合里面所有的value HSETNX key field value 为集合设置新field-value,如果field存在则失败第四章Redis 常用API介绍
  • 13. 四、Lists相关命令 LPUSH key value [value ...] 在队列的左边push一个或多个value LPOP key 从队列左边出队一个元素 LINDEX key index 获取从左边开始的index位置的元素 LLEN key 获取队列长度 LRANGE key start stop 获取队列从start位置开始到stop的元素 RPUSH key value [value ...]在队列的右边push一个或多个value RPOP key从队列右边出队一个元素 RPOPLPUSH source destination 从队列source右边出队一个元素,从左边入队到destination队列 LTRIM key start stop 保留队列start到stop的元素 第四章Redis 常用API介绍
  • 14. 五、Sets相关命令 SADD key member [member ...] 向set里添加一个或多个成员 SCARD key 查看set里面元素的数量 SDIFF key [key ...] 比较多个set不同的元素 SINTER key [key ...] 获取多个set的交集 SISMEMBER key member 判断成员是否在当前set里面 SMEMBERS key 获取set里面的所有成员 SMOVE source destination member 将成员从原set移动到目标set SPOP key 随机从set里面出队一个成员 SRANDMEMBER key 随机从set里面获取一个成员 SREM key member [member ...] 从set里删除指定成员 SUNION key [key ...] 将两个或多个set合并到一起 第四章Redis 常用API介绍
  • 15. 六、Sorted Sets相关命令 ZADD key score member [score] [member]向有序set里添加一个或多个成员 ZCARD key 查看有序set里面元素的数量 ZCOUNT key min max 统计min到max之间元素数量 ZINCRBY key increment member 为元素的score值原子增加指定值 ZRANGE key start stop [WITHSCORES] 返回有序集合指定区间的值 ZREVRANGE key start stop [WITHSCORES]返回有序集合指定区间的值,集合按score值递减排列 ZRANK key member 查询成员的排名 ZREM key member [member ...] 删除一个或多个成员 ZSCORE key member 查询成员的score值 第四章Redis 常用API介绍
  • 16. 七、Pub/Sub相关命令 PUBLISH channel message 将消息发送到指定频道 SUBSCRIBE channel [channel ...] 订阅一个或多个频道 PSUBSCRIBE pattern [pattern ...] PUNSUBSCRIBE [pattern [pattern ...]] UNSUBSCRIBE [channel [channel ...]]第四章Redis 常用API介绍
  • 17. 八、Transactions相关命令 MULTI 标记一个事务的开始 WATCH key [key ...] 标记指定的key EXEC 执行事务 DISCARD 撤销事务 UNWATCH 取消所有被标记的key,如果执行EXEC 或者DISCARD, 则不需要手动执行UNWATCH第四章Redis 常用API介绍
  • 18. 九、Connection相关命令 PING ping一下redis服务器,检测服务是否正常 AUTH password 如果服务器设置了密码,通过该命令验证密码 ECHO message 直接回显输入的消息 SELECT index 选择特定的数据库 QUIT 结束本次会话,退出连接第四章Redis 常用API介绍
  • 19. 十、Server相关命令 INFO 查看redis服务的内存、连接数等相关信息 SAVE 执行一次持久化 DBSIZE 查看当前db的key的数量 FLUSHDB 清空当前db FLUSHALL 清空所有数据 MONITOR 实时监控服务的所有请求命令 SLAVEOF host port 指定主redis服务 CONFIG SET parameter value 设置配置 CONFIG GET parameter 获取配置 SHUTDOWN 关闭服务第四章Redis 常用API介绍
  • 20. 第五章 一、java客户端 Jedis 、Jredis、JDBC-Redis、RJC 二、C客户端 Hiredis、 credis、 libredis 三、 C#客户端 ServiceStack.Redis、 Booksleeve 、 Sider、 TeamDev Redis Client 四、php客户端 Predis 、 phpredis 、 Rediska、 RedisServer、 Redisent 五、 Python客户端 redis-py、 txredis、 desir 六、 Perl客户端 Redis 、 Redis::hiredis、 AnyEvent::Redis、 MojoX::Redis 官方客户端介绍地址: http://redis.io/clients redis客户端介绍
  • 21. 第六章Redis案例分享一、百分点推荐引擎设计
  • 22. 第六章Redis案例分享二、飞信孙朝晖分享 Mysql HandleSocket技术在SNS Feed存储中的应用
  • 23. 第六章Redis案例分享三、新浪微博redis应用
  • 24. 第六章Redis案例分享三、新浪微博redis应用
  • 25. 第六章Redis案例分享三、新浪微博redis应用
  • 26. 第六章Redis案例分享四、使用redis的典型代码
  • 27. 谢谢!百分点推荐引擎