加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

架构秘笈:移花接木。使用MySQL模拟Redis

发布时间:2019-10-18 23:31:18 所属栏目:MySql教程 来源:佚名
导读:副标题#e# 【大咖·来了 第7期】10月24日晚8点观看《智能导购对话机器人实践》 这年头,你看到的东西未必就是你认为的东西。一个mysql协议的后面,可能是tidb;一个linux机器后面,可能是一个精简的docker;你觉得xjjdog是个女的,但可能ta自己也不太清楚;

hdel操作

  1. delete from rstore_hash where "rkey" = $1 and "hkey" = $2 

del操作

  1. delete from rstore_hash where "rkey" = $1 

hlen,hexists操作

  1. select count(*) as num from rstore_hash where "rkey" = $1 

ttl操作

  1. select max(lastTIme) from rstore_hash  where  "rkey" = $1 

zset设计

Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。它的底层结构是跳跃表,效率特别高,但是会占用大量内存。

设计专用的数据库表rstore_zset,其中,rkey和member是联合主键。

  1. rkey        varchar  
  2. member        varchar  
  3. score     double  
  4. lastTime    bigint 

zadd操作

  1. insert into rstore_zset("rkey","member","score","lastTime") values($1,$2,$3,$4) on duplicate key update update set "score"=$3,"lastTime"=$4 

zscore操作

  1. select score from rstore_zset where "rkey" = $1 and "member" = $2 

zrem操作

  1. delete from rstore_zset where "rkey" = $1 and "member" = $2" 

zcard,exists操作

  1. select count(*) as num from rstore_zset where "rkey" = $1 

zcount操作

  1. select count(*) as num from rstore_zset where "rkey" = $1 and score>=$2 and score<=$3 

zremrangebyscore操作

  1. delete from rstore_zset where "rkey" = $1 and score>=$2 and score<=$3 

zrangebyscore操作

  1. select member,score from rstore_zset  
  2. where "rkey" = $1 and score>=$2 and score<=$3 order by score asc,member asc 

zrange操作

  1. select member,score from rstore_zset  
  2. where "rkey" = $1 order by score asc offset $2 limit $3 

zrank操作

  1. select rank from (select member,rank() over (order by "score" asc, "lastTime" asc) as rank from rstore_zset where "rkey" = $1 ) m where m."member"= $2; 

ttl操作

  1. select max(lastTIme) from rstore_zset  where  "rkey" = $1 

del操作

  1. delete from rstore_zset where "rkey" = $1 

set设计

Redis的Set是string类型的无序集合。

设计专用的数据库表rstore_set,其中,rkey和member是联合主键。

  1. rkey        varchar  
  2. member        varchar  
  3. lastTime    bigint 

sadd操作

  1. insert into rstore_set("rkey","member","lastTime") values($1,$2,$3)  
  2. on duplicate key update update set "lastTime"=$3 

scard操作

  1. select count(*) as num from rstore_set where "rkey" = $1 

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读