17 redis -key设计原则
书签系统 create table book ( bookid int, title char(20) )engine myisam charset utf8;insert into book values (5 , 'PHP圣经'), (6 , 'ruby实战'), (7 , 'mysql运维'), (8, 'ruby服务端编程');create table tags ( tid int, bookid int, content char(20) )engine myisam charset utf8;insert into tags values (10 , 5 , 'PHP'), (11 , 5 , 'WEB'), (12 , 6 , 'WEB'), (13 , 6 , 'ruby'), (14 , 7 , 'database'), (15 , 8 , 'ruby'), (16 , 8 , 'server');# 既有web标签,又有PHP,同时还标签的书,要用连接查询 select * from tags inner join tags as t on tags.bookid=t.bookid where tags.content='PHP' and t.content='WEB';换成key-value存储 用kv 来存储 set book:5:title 'PHP圣经' set book:6:title 'ruby实战' set book:7:title 'mysql运难' set book:8:title ‘ruby server’sadd tag:PHP 5 sadd tag:WEB 5 6 sadd tag:database 7 sadd tag:ruby 6 8 sadd tag:SERVER 8查: 既有PHP,又有WEB的书 Sinter tag:PHP tag:WEB #查集合的交集 查: 有PHP或有WEB标签的书 Sunin tag:PHP tag:WEB查:含有ruby,不含WEB标签的书 Sdiff tag:ruby tag:WEB #求差集 Redis key 设计技巧1: 把表名转换为key前缀 如, tag: 2: 第2段放置用于区分区key的字段--对应mysql中的主键的列名,如userid 3: 第3段放置主键值,如2,3,4...., a , b ,c 4: 第4段,写要存储的列名用户表 user , 转换为key-value存储--------------------------------------------------userid username passworde email-------------------------------------------------- 9 Lisi 1111111 lisi@163.com--------------------------------------------------set user:userid:9:username lisi set user:userid:9:password 111111 set user:userid:9:email lisi@163.comkeys user:userid:9*2 注意: 在关系型数据中,除主键外,还有可能其他列也步骤查询, 如上表中, username 也是极频繁查询的,往往这种列也是加了索引的.转换到k-v数据中,则也要相应的生成一条按照该列为主的key-value Set user:username:lisi:uid 9 这样,我们可以根据username:lisi:uid ,查出userid=9, 再查user:9:password/email ...
17 redis -key设计原则相关推荐
- redis aof日志持久化和key设计原则
一.aof的配置 1.将appendonly改为yes开启aof功能 2.appendfsync:选择同步的方式 3. 二.key的设计原则 1.sinter [key:value]. ...
- Redis 缓存设计原则
基本原则 只应将热数据放到缓存中 所有缓存信息都应设置过期时间 缓存过期时间应当分散以避免集中过期 缓存key应具备可读性 应避免不同业务出现同名缓存key 可对key进行适当的缩写以节省内存空间 选 ...
- redis key设计技巧
1: 把表名转换为key前缀 如, user: 2: 第2段放置用于区分区key的字段--对应mysql中的主键的列名,如userid 3: 第3段放置主键值,如2,3,4...., a , b ,c ...
- Redis入门——3.Redis key的设计技巧
Redis key的设计技巧 一,key设计原则 把表名转换为key前缀, 比如: tag: 第二段放置用于区分key的字段–对应mysql中的主键的列名 第三段放置主键值 第三段写列名 二,案例 用 ...
- 自然用户界面设计:NUI的经验教训与设计原则
<自然用户界面设计:NUI的经验教训与设计原则> 基本信息 原书名:Brave NUI World:Designing Natural User Interfaces for Touch ...
- vue学习-v-if v-for优先级、data、key、diff算法、vue组件化、vue设计原则、组件模板只有一个根元素、MVC.MVP,MVVM
1:v-if和v-for哪个优先级更高?如果两个同时出现,应该怎么优化得到更好的性能? //在vue页面中 同时使用v-for与v-if后,打印渲染函数. console.log(app.$optio ...
- Redis key前缀的设计与使用
阅读目录 采用模板方法模式进行设计前缀空间 RedisPrefixKey 接口 RedisBasePrefixKey 抽象类 UserKey 实现类(自定义) 改造RedisUtil工具类的方法 具体 ...
- HBASE中column family的设计,rowkey的设计,以及row key的设计原则问题
一.Hbase中的每条记录的结构 Hbase的表组成:一个表可以理解成是行的集合,行(记录)是列族的集合,列族是列的集合. (1) 列族column family:它是column的集合,在创建表的时 ...
- 设计模式之美总结(设计原则篇)
title: 设计模式之美总结(设计原则篇) date: 2022-10-27 17:31:42 tags: 设计模式 categories: 技术书籍及课程 cover: https://cover ...
最新文章
- QluOJ2018NewCode计算几何(寄蒜几盒)
- Nutch的安装和配置
- java 模板引擎_SpringBoot入门系列(四)如何整合Thymeleaf模板引擎
- 合并两个已经排好序的不等长的数组
- DeDE 后台登陆广告
- extras mibs php7,ubuntu编译安装php7遇到的问题及解决方案
- 插入排序(边输边排)
- Java基础知识学习(七)
- java context.xml_java-context.xml的解释
- PAT甲级1005 字符串的处理
- arch linux编译,ArchLinux内核编译与安装
- bzoj5470 / P4578 [FJOI2018]所罗门王的宝藏//(尚未修正)
- 计算机桌面底边出现库如何去掉,桌面图标有蓝底怎么去掉完美全解决方案
- python中abs函数是什么意思_实例讲解Python3中abs()函数
- 64位win7下Android SDK Manager闪退的解决方法
- JAVA编程的第二天JAVA编程环境搭建与JAVA入门案例
- SpringBoot总结(六)--连接oracle数据库demo
- 复习——哈夫曼树及哈夫曼编码
- 【高并发】别闹了,这样理解Java的内存模型才正确(八种操作+同步规则)
- 【matlab教程】02、拼接矩阵或向量
热门文章
- 阿里Java编程规约(集合)
- Java编程规约(OOP)
- Redis:13--常用功能之redis-cli redis-server等命令
- C++:48---纯虚函数
- mysql导入source数据库sql的C++实现和封装
- python 求子字符串_(6)KMP算法(求子串的位置)______字符串的匹配
- DCT原型 ——傅里叶级数
- 解决报错: Connecting to Kong on http ... Could not reach Kong on http://xxx.xxx.xxx.xxx:8001
- Java中Web程序修改配置文件不重启服务器的方法
- nginx-exporter安装使用