`
dannyhz
  • 浏览: 388080 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

redis 键值设计

 
阅读更多
http://blog.csdn.net/shikaiwencn/article/details/51792059

引用


丰富的数据结构使得Redis的设计非常的有趣。不像关系型数据库那样,DEV和DBA需要深度沟通,review每行sql语句,也不像memcached那样,不需要DBA的参与。redis的DBA需要熟悉数据结构,并能了解使用场景。
下面举一些常见适合kv数据库的例子来谈谈键值的设计,并与关系型数据库做一个对比,发现关系型的不足之处。
用户登录系统
记录用户登录信息的一个系统, 我们简化业务后只留下一张表。
关系型数据库的设计
mysql> select * from login;
--------- ---------------- ------------- ---------------------
| user_id | name           | login_times | last_login_time     |
--------- ---------------- ------------- ---------------------
|       1 | ken thompson   |           5 | 2011-01-01 00:00:00 |
|       2 | dennis ritchie |           1 | 2011-02-01 00:00:00 |
|       3 | Joe Armstrong  |           2 | 2011-03-01 00:00:00 |
--------- ---------------- ------------- ---------------------
user_id表的主键,name表示用户名,login_times表示该用户的登录次数,每次用户登录后,login_times会自增,而last_login_time更新为当前时间。
REDIS的设计
关系型数据转化为KV数据库,我的方法如下:
key 表名:主键值:列名
value 列值
一般使用冒号做分割符,这是不成文的规矩。比如在PHP-admin for redis系统里,就是默认以冒号分割,于是user:1 user:2等key会分成一组。于是以上的关系数据转化成kv数据后记录如下:
Set login:1:login_times 5
Set login:2:login_times 1
Set login:3:login_times 2

Set login:1:last_login_time 2011-1-1
Set login:2:last_login_time 2011-2-1
Set login:3:last_login_time 2011-3-1

set login:1:name ”ken thompson“
set login:2:name “dennis ritchie”
set login:3:name ”Joe Armstrong“
分享到:
评论

相关推荐

    redis键值对型数据库知识详解.zip

    它的设计目标是高性能、高可用性,通过使用键值对的形式存储数据,使得数据处理速度极快。 二、Redis数据结构 1. 字符串(String):最基础的数据类型,可存储字符串、整数或浮点数。 2. 哈希(Hash):用于存储键值对...

    Redis 数据库的键值设计

    文档描述了Redis 数据库的键值设计,个人感觉很好!

    Redis-KeyToNode键值到节点的映射

    Redis是一种高性能的键值数据库,常用于数据缓存、分布式会话管理等场景。在集群环境中,为了实现数据的分布式存储和负载均衡,Redis引入了槽(slot)的概念。每个键值对都会被分配到一个特定的槽上,然后根据槽的...

    浅谈Redis数据库的键值设计

    总的来说,Redis键值设计的关键在于理解和利用其数据结构的优势,根据业务需求进行优化。它要求开发者对数据结构有深入的理解,并在设计时充分考虑查询和更新的场景。尽管Redis不提供关系型数据库那样的事务支持和...

    redis:Redis键值存储(Win32 Win64端口)

    "Redis: Redis键值存储(Win32 Win64端口)"意味着这个压缩包包含了Redis在Windows 32位和64位系统上的可执行文件和相关资源,使得Windows用户也能方便地使用Redis。 Redis的主要特性包括: 1. **高性能**:Redis...

    redis:Redis键值数据库源码注释

    这份注释是我在创作新版《 Redis设计与实现》期间,为了了解Redis的内部实现而制作的,所有在书中有介绍的内容,在源码中都进行了相应的注释。 在注释的过程中,除了少量空间和空行方面的调整外,没有对原始代码进行...

    阿里云Redis的规范:键值设计、命令使用、客户端使用、相关工具.docx

    综上所述,阿里云Redis规范覆盖了键值设计、命令使用、客户端使用及相关工具等多个方面,旨在帮助开发者高效、稳定地使用Redis。遵循这些规范不仅能够提升应用程序的性能,还能降低潜在的风险。

    Redis设计与实战

    《Redis设计与实战》这本书是深入理解Redis数据库及其在实际应用中的实践经验的重要资源。Redis,全称Remote Dictionary Server,是一款高性能的键值存储系统,常用于数据缓存、消息队列、计数器等多个场景。它以其...

    《Redis设计和实现 黄建宏著》配套 Redis 3.0 中文注释版源码

    Redis是一款高性能的键值数据库,由意大利人Antonio Filippo Salutto(别名Salvatore Sanfilippo)创建。在中文圈,黄建宏先生所著的《Redis设计与实现》是一本广受好评的Redis学习书籍。这本书深入剖析了Redis的...

    redis的设计与实现pdf以及带注释源码

    Redis是一款高性能的键值存储系统,常用于数据库、缓存和消息中间件等场景。它以其卓越的速度和丰富的数据结构而闻名,支持字符串、哈希、列表、集合、有序集合等多种数据类型。本资料“redis的设计与实现pdf”以及...

    Redis中键值过期操作示例详解

    在分布式环境中,Redis 的过期策略也会影响数据的一致性,因此在设计系统时需要考虑这些因素。 总之,Redis 的键值过期功能为缓存管理提供了便利,确保了数据的有效性和内存效率。理解并熟练掌握这些操作,可以帮助...

    Redis Desktop Manager redis的可视化工具压缩包,解压即用

    Redis Desktop Manager是一款强大的开源图形化界面工具,专为管理和操作Redis键值存储系统而设计。它为用户提供了直观且高效的界面,使得在处理Redis数据库时能够更加便捷。这个压缩包包含的就是这款工具的安装文件...

    Redis 数据库

    在Windows环境下,Redis也有良好的支持,尽管其原生是为Linux设计的。 Redis的数据类型包括字符串(Strings)、哈希(Hashes)、列表(Lists)、集合(Sets)和有序集合(Sorted Sets),这些数据结构使得Redis能够...

    Redis源码解读与项目精品设计实战

    Redis是一种开源的高性能键值对存储数据库,由意大利程序员Salvatore Sanfilippo(也被称为antirez)创建,并且目前由Redis Labs公司赞助开发。Redis支持多种类型的数据结构,如字符串(strings)、列表(lists)、...

    redis desktop manager免费版

    Redis Desktop Manager是一款强大的图形化界面工具,专为管理和操作Redis键值存储系统设计。它提供了直观的用户界面,使得在Windows 10操作系统上与Redis服务器进行交互变得更加便捷。这款免费版的Redis Desktop ...

    Redis链接工具(RedisDesktopManager)

    Redis Desktop Manager是一款强大的开源图形化界面工具,专为管理和操作Redis键值存储系统而设计。它提供了直观的用户界面,使得数据库的管理变得更加便捷,尤其适合开发者和DBA在日常工作中进行数据查看、编辑和...

    redis desktop manager Mac版本 dmg格式 和redis包

    Redis Desktop Manager是一款强大的图形化界面工具,专为管理和操作Redis键值存储系统设计。它提供了直观的用户界面,使得在Mac OS X系统上操作Redis数据库变得简单易行。这款工具适用于开发人员、数据库管理员以及...

    redis设计与实现.pdf

    Redis 和其他很多 key-value 数据库的不同之处在于,Redis 不仅支持简单的字符串键值对,它 还提供了一系列数据结构类型值,比如列表、哈希、集合和有序集,并在这些数据结构类型上 定义了一套强大的 API 。 通过...

    Redis 管理工具 (RedisDesktopManager)

    Redis Desktop Manager是一款强大的图形化界面工具,专为管理和操作Redis键值存储系统设计。它提供了直观的用户界面,使得数据库的交互变得简单易行,尤其适合开发者和DBA在日常工作中进行数据查看、编辑和管理。 ...

Global site tag (gtag.js) - Google Analytics