- 浏览: 393207 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (760)
- 股票日志 (26)
- Selenium (0)
- selenium 2 环境的搭建 (1)
- 并发 (7)
- 框架开发 (1)
- 动态代理 (2)
- Struts2 (2)
- POI (2)
- jdk (3)
- maven (31)
- spring (35)
- mysql (31)
- 工作机会 (3)
- xtream (1)
- oracle dbms_metadata GET_DDL (0)
- SSI (1)
- DB (61)
- powermock (4)
- java 基础 (25)
- 多线程 (11)
- 高手 (2)
- java 底层 (2)
- 专业网站 (1)
- 开发联想 (1)
- 开发联想 (1)
- bat文件 (2)
- 清queue 语句 (1)
- 清queue 语句 (1)
- jquery (7)
- html5 (1)
- Jenkins (10)
- Linux (17)
- 工作issue (2)
- tomcat log (3)
- jvm (23)
- 项目细节 (0)
- oracle (41)
- 泛型 (3)
- 新知识点 (1)
- 数据库ddl 语句 (0)
- AQ (2)
- jms (0)
- 网络资源 (6)
- github (6)
- Easymock (1)
- Dom 解析XML (1)
- windows命令 (2)
- java (7)
- 正则表达式 (5)
- sequence (1)
- oracle 表meta信息 (1)
- 小工具技巧 (1)
- 辅助工具 (1)
- Junit (1)
- 泛型 generic (2)
- Java程序设计 (1)
- cglib (2)
- 架构师之路 (1)
- 数据库连接池 (5)
- c3p0 (1)
- eclipse使用 (1)
- oracle sql plus (1)
- 码农人生 (3)
- SVN (15)
- sqlplus (2)
- jsoup (1)
- 网络爬虫 (2)
- 新技能 (1)
- zookeeper (4)
- hadoop (1)
- SVNKIT (1)
- 从工具到知识点的整理 (1)
- log4j (13)
- 读文件 (0)
- 转义字符 (1)
- command (1)
- web service (3)
- 锁 (1)
- shell 脚本 (1)
- 遇到的错误 (2)
- tomcat (14)
- 房产 (5)
- bootstrap jquery ui (1)
- easyui (2)
- 个人征信 (1)
- 读写分离 (1)
- 备份 (1)
- rmi (6)
- webservice (1)
- JMX (4)
- 内存管理 (3)
- java设计 (1)
- timer (1)
- lock (2)
- concurrent (2)
- collection (1)
- tns (1)
- java基础 (15)
- File (1)
- 本机资源 (1)
- bat (1)
- windows (4)
- 数据结构 (3)
- 代码安全 (1)
- 作用域 (1)
- 图 (2)
- jvm内存结构 (1)
- 计算机思想 (1)
- quartz (6)
- Mongo DB (2)
- Nosql (4)
- sql (5)
- 第三方Java 工具 jar 项目 (2)
- drools (1)
- java swing (2)
- 调用console (1)
- runtime (1)
- process (1)
- swing (2)
- grouplayout (1)
- dubbo (0)
- bootstrap (0)
- nodejs (2)
- SVN hooks (1)
- jdbc (3)
- jdbc error (1)
- precedure (1)
- partition_key (1)
- active mq (1)
- blob (2)
- Eclipse (6)
- web server (1)
- bootstrapt (2)
- struts (1)
- ajax (1)
- js call back (1)
- 思想境界拓展 (1)
- JIRA (1)
- log (1)
- jaxb (3)
- xml java互相转换 (1)
- 装修 (2)
- 互联网 (2)
- threadlocal (3)
- mybatis (22)
- xstream (1)
- 排序 (1)
- 股票资源 (1)
- RPC (2)
- NIO (3)
- http client (6)
- 他人博客 (1)
- 代理服务器 (1)
- 网络 (2)
- web (1)
- 股票 (5)
- deadlock (1)
- JConsole (2)
- activemq (3)
- oralce (1)
- 游标 (1)
- 12月13日道富内部培训 (0)
- grant (1)
- 速查 (2)
- classloader (4)
- netty (4)
- 设计模式 (2)
- 缓存 (2)
- ehcache (2)
- framework (1)
- 内存分析 (2)
- dump (1)
- memory (2)
- 多高线程,并发 (1)
- hbase (2)
- 分布式系统 (1)
- socket (3)
- socket (1)
- 面试问题 (1)
- jetty (2)
- http (2)
- 源码 (1)
- 日志 (2)
- jni (1)
- 编码约定 (1)
- memorycache (1)
- redis (13)
- 杂谈 (1)
- drool (1)
- blockingqueue (1)
- ScheduledExecutorService (1)
- 网页爬虫 (1)
- httpclient (4)
- httpparser (1)
- map (1)
- 单例 (1)
- synchronized (2)
- thread (1)
- job (1)
- hashcode (1)
- copyonwriteArrayList (2)
- 录制声音 (1)
- java 标准 (2)
- SSL/TLS (1)
- itext (1)
- pdf (1)
- 钻石 (2)
- sonar (1)
- unicode (1)
- 编码 (4)
- html (1)
- SecurityManager (1)
- 坑 (1)
- Restful (2)
- svn hook (1)
- concurrentHashMap (1)
- 垃圾回收 (1)
- vbs (8)
- visual svn (2)
- power shell (1)
- wmi (3)
- mof (2)
- c# (1)
- concurrency (1)
- 劳动法 (1)
- 三国志游戏 (2)
- 三国 (1)
- 洪榕 (2)
- 金融投资知识 (1)
- motan (1)
- tkmybatis mapper (1)
- 工商注册信息查询 (1)
- consul (1)
- 支付业务知识 (2)
- 数据库备份 (1)
- 字段设计 (1)
- 字段 (1)
- dba (1)
- 插件 (2)
- PropEdit插件 (1)
- web工程 (1)
- 银行业知识 (2)
- 国内托管银行 (1)
- 数据库 (1)
- 事务 (2)
- git (18)
- component-scan (1)
- 私人 (0)
- db2 (14)
- alias (1)
- 住房 (1)
- 户口 (1)
- fastjson (1)
- test (6)
- RSA (2)
- 密钥 (1)
- putty (1)
- sftp (1)
- 加密 (1)
- 公钥私钥 (3)
- markdown (1)
- sweet (1)
- sourcetree (1)
- 好工具 (1)
- cmd (1)
- scp (1)
- notepad++ (1)
- ssh免密登录 (1)
- https (1)
- ssl (2)
- js (2)
- h2 (1)
- 内存 (2)
- 浏览器 (1)
- js特效 (1)
- io (1)
- 乱码 (1)
- 小工具 (1)
- 每周技术任务 (1)
- mongodb (7)
- 内存泄漏 (1)
- 码云 (2)
- 如何搭建java 视频服务器 tomcat (1)
- 资源 (1)
- 书 (1)
- 四色建模法 (1)
- 建模 (1)
- 配置 (1)
- 职位 (1)
- nginx (1)
- excel (1)
- log4j2 (2)
- 做菜 (1)
- jmap (1)
- jspwiki (1)
- activiti (1)
- 工作流引擎 (1)
- 安卓 (1)
- acitviti 例子 (1)
- 二维码 (1)
- 工作流 (1)
- powerdesign (2)
- 软件设计 (1)
- 乐观锁 (1)
- 王者荣耀 (1)
- session (2)
- token (5)
- cookie (4)
- springboot (24)
- jwt (2)
- 项目路径 (1)
- magicbook (1)
- requestType (1)
- json (2)
- swagger (1)
- eolinker (1)
- springdata (1)
- springmvc (1)
- controlleradvice (1)
- profile (1)
- 银行四要素 (1)
- 支付人员资源 (1)
- 支付渠道 (1)
- yaml (1)
- 中文编码 (1)
- mongo (2)
- serializable (1)
- 序列化 (1)
- zyd (1)
- unittest (1)
- 工具 (1)
- Something (1)
- 通达信 (1)
- protobuf (1)
- 算法 (1)
- springcloud (2)
- hikari (1)
- rocketmq (7)
- cachecloud (1)
- serfj (1)
- axure (1)
- lombok (1)
- 分布式锁 (1)
- 线程 (2)
- 同步代码块 (1)
- cobar (1)
- mq (1)
- rabbitmq (1)
- 定时执行 (1)
- 支付系统 (3)
- 唱歌 (1)
- elasticjob (1)
- 定时任务 (1)
- 界面 (1)
- flink (2)
- 大数据 (1)
- 接私活 (0)
- 内部培训 (2)
最新评论
-
dannyhz:
做股票从短线 试水,然后 慢慢发现 波段和 中期的故事可挖, ...
搭台唱戏 -
dannyhz:
http://developer.51cto.com/art/ ...
如何自己开发框架 它的注意点是什么
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的设计非常的有趣。不像关系型数据库那样,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 分布式锁的 改进方式,比-传-化-的优秀 使用redis的setnx()
2018-10-29 15:12 322引用 https://blog.csdn.net/xiaoly ... -
redis分布式锁的代码实践
2018-09-25 15:55 335引用 http://www.importnew.com/193 ... -
redis 实现分布式锁
2018-09-24 23:50 329引用 https://blog.csdn.net/KingCa ... -
哨兵模式详解
2018-08-16 19:21 651引用 https://blog.csdn.net/liguan ... -
单机 哨兵模式模拟
2018-08-16 14:41 409引用 https://blog.csdn.net/fightx ... -
redis 的哨兵模式 介绍
2018-08-16 14:12 441引用 https://www.cnblogs.com/Patr ... -
spring data redis 模块
2018-08-16 12:33 342引用 https://blog.csdn.net/adsada ... -
redis 来生成全局唯一主键
2018-06-12 13:40 1092引用 https://blog.csdn.net/Unkno ... -
redis 持久化 的方式 rdm
2018-03-05 12:09 473http://blog.csdn.net/jy69240518 ... -
Redis以及jedis的事务处理
2017-06-30 11:30 434Redis http://www.open-open.com ... -
redis的事务
2017-06-29 18:31 301http://blog.csdn.net/hechurui/a ... -
spring ehcache redis 两级缓存的方案
2017-03-15 01:17 542http://blog.csdn.net/liaoyulin0 ...
相关推荐
它的设计目标是高性能、高可用性,通过使用键值对的形式存储数据,使得数据处理速度极快。 二、Redis数据结构 1. 字符串(String):最基础的数据类型,可存储字符串、整数或浮点数。 2. 哈希(Hash):用于存储键值对...
文档描述了Redis 数据库的键值设计,个人感觉很好!
Redis是一种高性能的键值数据库,常用于数据缓存、分布式会话管理等场景。在集群环境中,为了实现数据的分布式存储和负载均衡,Redis引入了槽(slot)的概念。每个键值对都会被分配到一个特定的槽上,然后根据槽的...
总的来说,Redis键值设计的关键在于理解和利用其数据结构的优势,根据业务需求进行优化。它要求开发者对数据结构有深入的理解,并在设计时充分考虑查询和更新的场景。尽管Redis不提供关系型数据库那样的事务支持和...
"Redis: Redis键值存储(Win32 Win64端口)"意味着这个压缩包包含了Redis在Windows 32位和64位系统上的可执行文件和相关资源,使得Windows用户也能方便地使用Redis。 Redis的主要特性包括: 1. **高性能**:Redis...
这份注释是我在创作新版《 Redis设计与实现》期间,为了了解Redis的内部实现而制作的,所有在书中有介绍的内容,在源码中都进行了相应的注释。 在注释的过程中,除了少量空间和空行方面的调整外,没有对原始代码进行...
综上所述,阿里云Redis规范覆盖了键值设计、命令使用、客户端使用及相关工具等多个方面,旨在帮助开发者高效、稳定地使用Redis。遵循这些规范不仅能够提升应用程序的性能,还能降低潜在的风险。
《Redis设计与实战》这本书是深入理解Redis数据库及其在实际应用中的实践经验的重要资源。Redis,全称Remote Dictionary Server,是一款高性能的键值存储系统,常用于数据缓存、消息队列、计数器等多个场景。它以其...
Redis是一款高性能的键值数据库,由意大利人Antonio Filippo Salutto(别名Salvatore Sanfilippo)创建。在中文圈,黄建宏先生所著的《Redis设计与实现》是一本广受好评的Redis学习书籍。这本书深入剖析了Redis的...
Redis是一款高性能的键值存储系统,常用于数据库、缓存和消息中间件等场景。它以其卓越的速度和丰富的数据结构而闻名,支持字符串、哈希、列表、集合、有序集合等多种数据类型。本资料“redis的设计与实现pdf”以及...
在分布式环境中,Redis 的过期策略也会影响数据的一致性,因此在设计系统时需要考虑这些因素。 总之,Redis 的键值过期功能为缓存管理提供了便利,确保了数据的有效性和内存效率。理解并熟练掌握这些操作,可以帮助...
Redis Desktop Manager是一款强大的开源图形化界面工具,专为管理和操作Redis键值存储系统而设计。它为用户提供了直观且高效的界面,使得在处理Redis数据库时能够更加便捷。这个压缩包包含的就是这款工具的安装文件...
在Windows环境下,Redis也有良好的支持,尽管其原生是为Linux设计的。 Redis的数据类型包括字符串(Strings)、哈希(Hashes)、列表(Lists)、集合(Sets)和有序集合(Sorted Sets),这些数据结构使得Redis能够...
Redis是一种开源的高性能键值对存储数据库,由意大利程序员Salvatore Sanfilippo(也被称为antirez)创建,并且目前由Redis Labs公司赞助开发。Redis支持多种类型的数据结构,如字符串(strings)、列表(lists)、...
Redis Desktop Manager是一款强大的图形化界面工具,专为管理和操作Redis键值存储系统设计。它提供了直观的用户界面,使得在Windows 10操作系统上与Redis服务器进行交互变得更加便捷。这款免费版的Redis Desktop ...
Redis Desktop Manager是一款强大的开源图形化界面工具,专为管理和操作Redis键值存储系统而设计。它提供了直观的用户界面,使得数据库的管理变得更加便捷,尤其适合开发者和DBA在日常工作中进行数据查看、编辑和...
Redis Desktop Manager是一款强大的图形化界面工具,专为管理和操作Redis键值存储系统设计。它提供了直观的用户界面,使得在Mac OS X系统上操作Redis数据库变得简单易行。这款工具适用于开发人员、数据库管理员以及...
Redis 和其他很多 key-value 数据库的不同之处在于,Redis 不仅支持简单的字符串键值对,它 还提供了一系列数据结构类型值,比如列表、哈希、集合和有序集,并在这些数据结构类型上 定义了一套强大的 API 。 通过...
Redis Desktop Manager是一款强大的图形化界面工具,专为管理和操作Redis键值存储系统设计。它提供了直观的用户界面,使得数据库的交互变得简单易行,尤其适合开发者和DBA在日常工作中进行数据查看、编辑和管理。 ...