1、Redis分享北疯,认识redis,Part 1,定义:Redis 是一个高性能的key-value内存数据库官方性能测试结果:SET操作每秒钟 110000 次,GET操作每秒钟 81000 次,介绍,具有持久化功能的memcached?get/set 内存 expireredis与memcached的最大区别replication (树形)data types (Strings、Lists、Sets、Sorted Sets、Hashes)persistence (snapshot、aof),对比Memcached,事件驱动epoll LT,单进程,Redis server,config f
2、ile,global server state,event loop,FileEvent,TimeEvent,accept handler,server cron,read,create,initialize,register,register,configure,慎用,keysmMethodsave,多进程: persistent多线程: vm swap,多进程&多线程,数据结构,Data Structure Server Strings Lists Sets Sorted Sets Hashes 基础数据结构: sds dict list,持久化,Snapshottingsave 900
3、1 save 300 10save 60 10000AOFappendfsync always appendfsync everysec /在性能和持久化方面做了很好的折中appendfsync no,Snapshotting,优点:读写性能好缺点:数据丢失dump时机未知不稳定,AOF,优点:读性能好数据安全缺点:写性能下降数据没有100%安全性aof定期整理,持久化性能比较,1、无持久化2 、Snapshotting3 、aof-always4 、aof-everysec5 、aof-no,持久化,最后都需要通过Copy-on-write把内存里的数据写入磁盘dump时有写操作,需要额外内
4、存aof可以通过人工调用bgrewriteaof命令做数据整理,虚拟内存,使用环境冷热数据分明 + value值很大 优点存储更多数据,节约硬件成本缺点:不稳定性能差总结关闭虚拟内存,加大物理内存或者数据分片储存,Part 2,redis线上,Prometheus,prom - 交易数据全属性实时计算系统特点:结构化多维度实时精确,prom数据特点,每天全量增加,不做update最近7天交易数据索引数据700w左右key明细数据,prom储存,索引数据tokyocabinet + tokyotyrant每天2G以上(tokyotyrant压缩)明细数据redis6台24G服务器,每台3个节点,
5、redis储存策略,版本: redis-2.0.0-rc4客户端数据分片不做持久化不开启vmkey 成交id value 交易明细,redis使用策略,java客户端: jredis-1.0-rc1mgetJRedisService监控set求交 *expire *,redis mget,mid:14max:1306avg:54,mid:383max:276218avg:8893,tc + tt 储存策略,索引(tch) : hashhash桶(bnum) :1000W (0.4-4)线程(thnum) :100映射内存 (xmsiz ) :2G备份,tc + tt 性能统计,min:1mid:2608max:320199avg:23630,mid:4max:3018avg:32,Part 3,redis总结,总结,放弃VM,添加机器容量规划利用多CPU使用最新稳定版,使用场景,cache级别的nosql DB临时数据消息队列,Redis VS RabbitMQ,入队,出队,轻量高性能,未来,Clusterdiskstore,参考,http:/www.redis.io/http:/