书签系统
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设计原则相关推荐

  1. redis aof日志持久化和key设计原则

    一.aof的配置         1.将appendonly改为yes开启aof功能 2.appendfsync:选择同步的方式 3. 二.key的设计原则 1.sinter [key:value]. ...

  2. Redis 缓存设计原则

    基本原则 只应将热数据放到缓存中 所有缓存信息都应设置过期时间 缓存过期时间应当分散以避免集中过期 缓存key应具备可读性 应避免不同业务出现同名缓存key 可对key进行适当的缩写以节省内存空间 选 ...

  3. redis key设计技巧

    1: 把表名转换为key前缀 如, user: 2: 第2段放置用于区分区key的字段--对应mysql中的主键的列名,如userid 3: 第3段放置主键值,如2,3,4...., a , b ,c ...

  4. Redis入门——3.Redis key的设计技巧

    Redis key的设计技巧 一,key设计原则 把表名转换为key前缀, 比如: tag: 第二段放置用于区分key的字段–对应mysql中的主键的列名 第三段放置主键值 第三段写列名 二,案例 用 ...

  5. 自然用户界面设计:NUI的经验教训与设计原则

    <自然用户界面设计:NUI的经验教训与设计原则> 基本信息 原书名:Brave NUI World:Designing Natural User Interfaces for Touch ...

  6. 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 ...

  7. Redis key前缀的设计与使用

    阅读目录 采用模板方法模式进行设计前缀空间 RedisPrefixKey 接口 RedisBasePrefixKey 抽象类 UserKey 实现类(自定义) 改造RedisUtil工具类的方法 具体 ...

  8. HBASE中column family的设计,rowkey的设计,以及row key的设计原则问题

    一.Hbase中的每条记录的结构 Hbase的表组成:一个表可以理解成是行的集合,行(记录)是列族的集合,列族是列的集合. (1) 列族column family:它是column的集合,在创建表的时 ...

  9. 设计模式之美总结(设计原则篇)

    title: 设计模式之美总结(设计原则篇) date: 2022-10-27 17:31:42 tags: 设计模式 categories: 技术书籍及课程 cover: https://cover ...

最新文章

  1. QluOJ2018NewCode计算几何(寄蒜几盒)
  2. Nutch的安装和配置
  3. java 模板引擎_SpringBoot入门系列(四)如何整合Thymeleaf模板引擎
  4. 合并两个已经排好序的不等长的数组
  5. DeDE 后台登陆广告
  6. extras mibs php7,ubuntu编译安装php7遇到的问题及解决方案
  7. 插入排序(边输边排)
  8. Java基础知识学习(七)
  9. java context.xml_java-context.xml的解释
  10. PAT甲级1005 字符串的处理
  11. arch linux编译,ArchLinux内核编译与安装
  12. bzoj5470 / P4578 [FJOI2018]所罗门王的宝藏//(尚未修正)
  13. 计算机桌面底边出现库如何去掉,桌面图标有蓝底怎么去掉完美全解决方案
  14. python中abs函数是什么意思_实例讲解Python3中abs()函数
  15. 64位win7下Android SDK Manager闪退的解决方法
  16. JAVA编程的第二天JAVA编程环境搭建与JAVA入门案例
  17. SpringBoot总结(六)--连接oracle数据库demo
  18. 复习——哈夫曼树及哈夫曼编码
  19. 【高并发】别闹了,这样理解Java的内存模型才正确(八种操作+同步规则)
  20. 【matlab教程】02、拼接矩阵或向量

热门文章

  1. 阿里Java编程规约(集合)
  2. Java编程规约(OOP)
  3. Redis:13--常用功能之redis-cli redis-server等命令
  4. C++:48---纯虚函数
  5. mysql导入source数据库sql的C++实现和封装
  6. python 求子字符串_(6)KMP算法(求子串的位置)______字符串的匹配
  7. DCT原型 ——傅里叶级数
  8. 解决报错: Connecting to Kong on http ... Could not reach Kong on http://xxx.xxx.xxx.xxx:8001
  9. Java中Web程序修改配置文件不重启服务器的方法
  10. nginx-exporter安装使用