Redis数据存储

一、redis是什么

redis是内存数据库、数据结构(string,list,set,zset(排序集合),hash)数据库以及kv数据库。
在这里插入图片描述

二、redis理解

操作 redis 就相当于操作 stl unordered_map

template class<T>;
unordered_map<string, T>

//unordered_map 和 map?
//map 红⿊树 时间复杂度 logn
//unordered_map hashtable 时间复杂度 o(1)

T ⽀持 string,list, set, zset, hash

#include <unordered_map>
#include <unordered_set>
#include <set>
#include <string>
using namespace std;
// string
unordered_map<string, string> strings;
// list
unordered_map<string, list<string>> lists;
// set order by
unordered_map<string, unordered_set<string>> sets;
// zset
unordered_map<string, skiplist<string, string>> zsets;
// hash 
unordered_map<string, unordered_map<string, string>> hashes;

要点:

  1. redis中的字符串并非c结构中的字符串,它是⼀个⼆进制安全的字符串(不会被特殊字符
    (\0)隔断)
    ;所以string中长度包含信息来标识字符串的⻓度;
  2. map 采⽤红黑树(平衡二叉搜索树)实现,⽽ unordered_map 采⽤哈希表实现;更接近
    redis dict 的实现;redis 中的 dict 也是采⽤哈希表实现的;
  3. 红⿊树是有序的树结构,查找需要⽐较 key,时间复杂度为 o(logn);⽽哈希表是⽆序的,查找不需要⽐较 key,因为它先将 key 通过 hash 函数⽣成整数,然后映射到数组当中,它的时间复杂度为o(1);
  4. set ⼀般采⽤有序的结构来实现,因为集合中可能涉及到交、并、差集的运算
  5. skiplist 是⼀个多层级的有序链表,并且⽅便进⾏范围查询;与B+树实现的功能类似,但⽐B+效率要高;

三、redis操作

在这里插入图片描述
在这里插入图片描述

四、redis数据存储

在这里插入图片描述
redis数据存储规则
在这里插入图片描述

string结构以及应用

在这里插入图片描述

相当于操作:unordered_map<string, string>
unordered_map<key, value>

主要命令以及应用:
在这里插入图片描述

设置单值

在这里插入图片描述

存储对象

在这里插入图片描述

累加器

在这里插入图片描述

分布式锁

在这里插入图片描述

list结构以及应里插用

在这里插入图片描述
quicklist 当中的节点 存储的就是 压缩列表

相当于操作 unordered_map<string, list<string>>

unordered_map<key, list<value>>

在这里插入图片描述

栈(先进后出 FILO)

在这里插入图片描述

队列(先进先出 FIFO)

在这里插入图片描述

阻塞队列(blocking queue)

在这里插入图片描述
在这里插入图片描述

朋友圈消息推送

在这里插入图片描述

hash结构以及应用

在这里插入图片描述

相当于操作 unordered_map<string, unordered_map<string, string>>

unordered_map<key, unordered_map<field, value>>

在这里插入图片描述

存储对象

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

购物车

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

set结构以及应用

在这里插入图片描述

相当于操作 unordered_map<string, unordered_set<string>>

unordered_map<key, unordered_set<member>>

在这里插入图片描述

抽奖

在这里插入图片描述

共同关注

在这里插入图片描述

可能认识的人

在这里插入图片描述

zset结构以及应用

在这里插入图片描述

相当于操作 unordered_map<string, skiplist<string, string>>

unordered_map<key, skiplist<member, score>>

在这里插入图片描述

百度热榜

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值