fbpx
维基百科

Redis

Redis(Remote Dictionary Server)是一个使用ANSI C编写的开源、支持网络、基于内存分布式、可选持久性键值对存储数据库。根据月度排行网站DB-Engines.com的数据,Redis是最流行的键值对存储数据库。[2]

Redis
開發者Salvatore Sanfilippo英语Salvatore Sanfilippo
首次发布2009年5月10日,​14年前​(2009-05-10
当前版本
  • 7.2.1 (2023年9月6日;穩定版本)[1]
源代码库
  • github.com/redis/redis
编程语言ANSI C
操作系统跨平台
语言英语
类型非关系型数据库
许可协议BSD
网站redis.io 

历史 编辑

Redis始于2009年,最初的开发者是Salvatore Sanfilippo。

2010年VMware资助Redis。

从2015年6月到2020年,Redis的开发在Redis Labs英语Redis Labs赞助下由Sanfilippo的团队维护。

2019年11月,RedisLabs发布了全新的可视化图形用户界面Redis工具RedisInsight。

支持语言 编辑

许多语言都包含Redis支持,包括:[3]

Python簡單範例 编辑

# coding:utf-8 import redis # lredis-server保持開啓狀態,如果在客戶端設定了密碼 添加password=密碼即可 pool = redis.ConnectionPool(host='127.0.0.1', port=6379, db=0) r = redis.StrictRedis(connection_pool=pool) # 字符串 r.set('test', 'aaa') print r.get('test') # 列表 # 注意python、lrange兩個range的範圍 x = 0 for x in range(0, 11): r.lpush('list', x) x = x + 1 print r.lrange('list', '0', '10') # 雜湊 dict_hash = {'name': 'tang', 'password': 'tang_passwd'} r.hmset('hash_test', dict_hash) print r.hgetall('hash_test') # 集合 r.sadd('set_test', 'aaa', 'bbb') r.sadd('set_test', 'ccc') r.sadd('set_test', 'ddd') print r.smembers('set_test') # 有序集 r.zadd('zset_test', {'aaa': 1, 'bbb': 1}) r.zadd('zset_test', {'ccc': 1}) r.zadd('zset_test', {'ddd': 1}) print r.zrange('zset_test', 0, 10) 

数据模型 编辑

Redis的外围由一个键、值映射的字典构成。与其他非关系型数据库主要不同在于:Redis中值的类型不仅限于字符串,还支持如下抽象数据类型:

值的类型决定了值本身支持的操作。Redis支持不同无序、有序的列表,无序、有序的集合间的交集、并集等高级服务器端原子操作。

持久化 编辑

Redis通常将全部的数据存储在内存中。2.4版本后可配置为使用虚拟内存[5]一部分数据集存储在硬盘上,但这个特性废弃了。

目前通过两种方式实现持久化

  • 使用快照,一种半持久耐用模式。不时的将数据集以异步方式从内存以RDB格式写入硬盘。
  • 1.1版本开始使用更安全的AOF格式替代,一种只能追加的日志类型。将数据集修改操作记录起来。Redis能够在后台对只可追加的记录进行修改,从而避免日志的無限增长。

同步 编辑

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

性能 编辑

当数据依赖不再需要,Redis这种基于内存的性质,与在执行一个事务时将每个变化都写入硬盘的数据库系统相比就显得执行效率非常高。[7]写与读操作速度没有明显差别。

参见 编辑

参考资料 编辑

  • Jeremy Zawodny, Redis: Lightweight key/value Store That Goes the Extra Mile(页面存档备份,存于互联网档案馆, Linux Magazine, August 31, 2009
  • Isabel Drost and Jan Lehnard(29 October 2009),Happenings: NoSQL Conference, Berlin(页面存档备份,存于互联网档案馆), The H. Slides(页面存档备份,存于互联网档案馆) for the Redis presentation. Summary(页面存档备份,存于互联网档案馆).
  • Billy Newport(IBM):"Evolving the Key/Value Programming Model to a Higher Level(页面存档备份,存于互联网档案馆)" Qcon Conference 2009 San Francisco.
  1. ^ 1.0 1.1 Release 7.2.1. 2023年9月6日 [2023年9月19日]. 
  2. ^ . [2013-06-29]. (原始内容存档于2013-07-07). 
  3. ^ . [2013-07-01]. (原始内容存档于2014-02-08). 
  4. ^ CRAN - Package rredis. [2013-07-01]. (原始内容于2013-06-20). 
  5. ^ Redis documentation "Virtual Memory" (页面存档备份,存于互联网档案馆), redis.io, accessed January 18, 2011.
  6. ^ ReplicationHowto - redis - A persistent key-value database with built-in net interface written in ANSI-C for Posix systems - Google Project Hosting. [2013-07-01]. (原始内容于2013-05-29). 
  7. ^ FAQ. [2013-07-01]. (原始内容存档于2013-07-16). 

外部链接 编辑

  • Redis项目官网(英文)
  • (英文)
  • (英文)
  • (英文)
  • 使用Ruby进行Redis开发的实例(页面存档备份,存于互联网档案馆(英文)

redis, 此條目可参照英語維基百科相應條目来扩充, 2023年4月13日, 若您熟悉来源语言和主题, 请协助参考外语维基百科扩充条目, 请勿直接提交机械翻译, 也不要翻译不可靠, 低品质内容, 依版权协议, 译文需在编辑摘要注明来源, 或于讨论页顶部标记, href, template, translated, page, html, title, template, translated, page, translated, page, 标签, 此條目翻譯品質稍有不足, 請協助翻譯本條目或重新編寫, 并注意避. 此條目可参照英語維基百科相應條目来扩充 2023年4月13日 若您熟悉来源语言和主题 请协助参考外语维基百科扩充条目 请勿直接提交机械翻译 也不要翻译不可靠 低品质内容 依版权协议 译文需在编辑摘要注明来源 或于讨论页顶部标记 a href Template Translated page html title Template Translated page Translated page a 标签 此條目翻譯品質稍有不足 請協助翻譯本條目或重新編寫 并注意避免翻译腔的问题 Redis Remote Dictionary Server 是一个使用ANSI C编写的开源 支持网络 基于内存 分布式 可选持久性的键值对存储数据库 根据月度排行网站DB Engines com的数据 Redis是最流行的键值对存储数据库 2 Redis開發者Salvatore Sanfilippo 英语 Salvatore Sanfilippo 首次发布2009年5月10日 14年前 2009 05 10 当前版本7 2 1 2023年9月6日 穩定版本 1 源代码库github wbr com wbr redis wbr redis编程语言ANSI C操作系统跨平台语言英语类型非关系型数据库许可协议BSD网站redis wbr io 目录 1 历史 2 支持语言 2 1 Python簡單範例 3 数据模型 4 持久化 5 同步 6 性能 7 参见 8 参考资料 9 外部链接历史 编辑Redis始于2009年 最初的开发者是Salvatore Sanfilippo 2010年VMware资助Redis 从2015年6月到2020年 Redis的开发在Redis Labs 英语 Redis Labs 赞助下由Sanfilippo的团队维护 2019年11月 RedisLabs发布了全新的可视化图形用户界面Redis工具RedisInsight 支持语言 编辑许多语言都包含Redis支持 包括 3 ActionScript C C C Clojure Common Lisp Dart Erlang Go Haskell Haxe Io Java Fibjs Node js Lua Objective C Perl PHP Pure Data Python R 4 Ruby Rust Scala Smalltalk Tcl Python簡單範例 编辑 coding utf 8 import redis lredis server保持開啓狀態 如果在客戶端設定了密碼 添加password 密碼即可 pool redis ConnectionPool host 127 0 0 1 port 6379 db 0 r redis StrictRedis connection pool pool 字符串 r set test aaa print r get test 列表 注意python lrange兩個range的範圍 x 0 for x in range 0 11 r lpush list x x x 1 print r lrange list 0 10 雜湊 dict hash name tang password tang passwd r hmset hash test dict hash print r hgetall hash test 集合 r sadd set test aaa bbb r sadd set test ccc r sadd set test ddd print r smembers set test 有序集 r zadd zset test aaa 1 bbb 1 r zadd zset test ccc 1 r zadd zset test ddd 1 print r zrange zset test 0 10 数据模型 编辑Redis的外围由一个键 值映射的字典构成 与其他非关系型数据库主要不同在于 Redis中值的类型不仅限于字符串 还支持如下抽象数据类型 字符串列表 无序不重复的字符串集合 有序不重复的字符串集合 键 值都为字符串的哈希表值的类型决定了值本身支持的操作 Redis支持不同无序 有序的列表 无序 有序的集合间的交集 并集等高级服务器端原子操作 持久化 编辑Redis通常将全部的数据存储在内存中 2 4版本后可配置为使用虚拟内存 5 一部分数据集存储在硬盘上 但这个特性废弃了 目前通过两种方式实现持久化 使用快照 一种半持久耐用模式 不时的将数据集以异步方式从内存以RDB格式写入硬盘 1 1版本开始使用更安全的AOF格式替代 一种只能追加的日志类型 将数据集修改操作记录起来 Redis能够在后台对只可追加的记录进行修改 从而避免日志的無限增长 同步 编辑Redis支持主从同步 数据可以从主服务器向任意数量的从服务器上同步 从服务器可以是关联其他从服务器的主服务器 这使得Redis可执行单层树复制 从盘可以有意无意的对数据进行写操作 由于完全实现了发布 订阅机制 使得从数据库在任何地方同步树时 可订阅一个频道并接收主服务器完整的消息发布记录 同步对读取操作的可扩展性和数据冗余很有帮助 6 性能 编辑当数据依赖不再需要 Redis这种基于内存的性质 与在执行一个事务时将每个变化都写入硬盘的数据库系统相比就显得执行效率非常高 7 写与读操作速度没有明显差别 参见 编辑 nbsp 自由软件主题 Cassandra Berkeley DB memcached MongoDB Solr 内存数据库 非关系型数据库参考资料 编辑Jeremy Zawodny Redis Lightweight key value Store That Goes the Extra Mile 页面存档备份 存于互联网档案馆 Linux Magazine August 31 2009 Isabel Drost and Jan Lehnard 29 October 2009 Happenings NoSQL Conference Berlin 页面存档备份 存于互联网档案馆 The H Slides 页面存档备份 存于互联网档案馆 for the Redis presentation Summary 页面存档备份 存于互联网档案馆 Billy Newport IBM Evolving the Key Value Programming Model to a Higher Level 页面存档备份 存于互联网档案馆 Qcon Conference 2009 San Francisco 1 0 1 1 Release 7 2 1 2023年9月6日 2023年9月19日 DB Engines Ranking of Key value Stores 2013 06 29 原始内容存档于2013 07 07 Redis language bindings 2013 07 01 原始内容存档于2014 02 08 CRAN Package rredis 2013 07 01 原始内容存档于2013 06 20 Redis documentation Virtual Memory 页面存档备份 存于互联网档案馆 redis io accessed January 18 2011 ReplicationHowto redis A persistent key value database with built in net interface written in ANSI C for Posix systems Google Project Hosting 2013 07 01 原始内容存档于2013 05 29 FAQ 2013 07 01 原始内容存档于2013 07 16 外部链接 编辑Redis项目官网 英文 对Salvatore Sanfillipo的播客采访 英文 由Simon Willison讲解的Redis真实应用场景教程 英文 使用PHP进行Redis开发的实例 英文 使用Ruby进行Redis开发的实例 页面存档备份 存于互联网档案馆 英文 取自 https zh wikipedia org w index php title Redis amp oldid 78826527, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。