阿里资深架构师“墙裂”推荐实战书籍:分布式+JVM+MySQL+Nginx..( 六 )

第11章 Redis的Lua脚本编程

Redis是一个key-value存储系统 。 和Memcached类似 , 它支持存储的value类型相对更多 , 包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型) 。 这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作 , 而且这些操作都是原子性的 。 在此基础上 , redis支持各种不同方式的排序 。 与memcached一样 , 为了保证效率 , 数据都是缓存在内存中 。 区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件 , 并且在此基础上实现了master-slave(主从)同步 。

Redis 是一个高性能的key-value数据库 。 redis的出现 , 很大程度补偿了memcached这类key/value存储的不足 , 在部 分场合可以对关系数据库起到很好的补充作用 。 它提供了Java , C/C++ , C# , PHP , JavaScript , Perl , Object-C , Python , Ruby , Erlang等客户端 , 使用很方便 。 [1

Redis支持主从同步 。 数据可以从主服务器向任意数量的总服务器上同步 , 总服务器可以是关联其它总服务器的主服务器 。 这使得Redis可执行单层树复制 。 存盘可以有意无意的对数据进行写操作 。 由于完全实现了发布/订阅机制 , 使得从数据库在任何地方同步树时 , 可订阅一个频道并接收主服务器完整的消息发布记录 。 同步对读取操作的可扩展性和数据冗余很有帮助 。

推荐阅读