Redis基本数据类型

news2024/11/19 15:38:26

string(字符串):最常见的用户是缓存用户信息,将用户信息结构体使用JSON序列化成字符串,然后将序列化后的字符串塞进Redis来缓存,然后取用户信息的过程会经历一次反序列化的过程。

Redis的字符串是动态字符串,可以修改,内部实现结构类似于Java的ArrayList,采用冗余分配空间的方式来减少内存的频繁分配。

list(列表):类似于Java的LinkedList,插入和删除很快,但是索引定位比较慢。list可以用作异步队列,将需要延后处理的任务结构体序列化成字符串塞进Redis中的列表,然后用另外一个线程来从这个列表中轮询数据进行处理。 右边进入左边弹出是队列,右边进入右边弹出是栈。 

hash字典 : 相当于是Java中的HashMap,是无序的,底层是数组+链表实现

 第一维hash 的数组位置碰撞时,就会将碰撞的元素使用链表串接起来。 (此处不是很理解,之前使用hash存储对象的时候,如果有两个相同的字段,会直接报错,不让存储,必须要给第二个重复的字段添加一些其他标识.....)

Hash也可以用来存储用户信息,不同于字符串一次性需要序列化整个用户对象,hash可以对用户结构中的每个字段单独存储,这样获取用户信息的时候可以部分获取,节省流量。 hash也有缺点,hash结构存储小高要高于单个字符串,具体使用哪个结构来存储对象信息,需要再三权衡。

set集合

相当于是Java中的HashSet ,它内部的键值对无序且唯一,内部其实是一个特殊的字典,字典的值全部都是null。 主要用来去重。

zset ,最为特色的数据结构,类似于Java的SortedSet和HashMap的结合体,一方面它是一个set,保证了内部value的唯一性,另一方面,他可以给每个value赋予一个score,这个代表value的排序权重,内部是通过一种叫做跳跃列表的数据结构来实现的。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/694355.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

互联网+洗鞋店预约小程序新模式;

互联网洗鞋店预约小程序 1、线上线下业务的结合。 传统的线下业务消费者到店可以向其推介线上的预约到家服务,让线下的消费者成为小程序内的会员,留存客户之后线上可直接触达,减少与消费者的距离,从等待客户到可以主动出击&…

Mac 配置Flutter开发环境遇到的坑

1. flutter doctor 命令无反应; 加sudo 执行; sudo flutter doctor执行完后, 在执行flutter doctor就好使了, 就很神奇;(还不行就重启再试试) 2. 创建项目提示没权限, 照提示命令赋予权限即可;(应该是前面sudo命令引起的, 但没找到其他好办法) 最后一个提示的没权限, 照提示运…

MAC中clion的默认clang的bug

问题描述 用clion运行上述代码info报错 >>报错,这个应该是代码风格的问题,还有部分大括号也会报错 解决方法 怀疑是编译器的问题,把clang改成gcc就好了

2023年7月1日(星期六):骑行小石林

2023年7月1日(星期六):骑行小石林(大青山),早8:30到9:00, 大观公园门囗集合,9:30点准时出发 【因迟到者,骑行速度快者,可自行追赶偶遇。】 偶遇地点: 大观公园门囗集合,…

《Pytorch深度学习和图神经网络(卷 1)》学习笔记——第六章

实例5:识别黑白图中的服装图案 Fashion-MNIST是手写数字数据集MNIST的一个替代品,常常被用来测试网络模型,如果在该数据集上效果都不好,其他数据集上的效果可想而知。其单个样本为28X28,6万张训练集,1万张…

【多线程】实现一个线程池

1. 线程池的概念 1.1 什么是线程池? 线程池也是一种线程的使用方式,前面刚开始学习多线程的时候,我们了解到线程太多,会带来 CPU 的调度开销。 以前我们都是一个线程执行一个任务(一个run方法),就好比搬砖,…

【Neo4j】图数据库安装和演示

部署图库 环境Win10Docker Desktop Neo4j 寻找容器,拉取容器,查询容器 docker search neo4j docker pull neo4j docker images参考说明 docker run -d --name neo4j \ //-d表示容器后台运行 --name指定容器名字-p 17474:7474 -p 17687:7687 \ //映射…

Tex表格代码--stat期刊

Tex表格代码1: \begin{center} \begin{table*}[t]% \caption{AAAAAA.\label{Table:BBB}} \centering \begin{tabular*}{500pt}{{\extracolsep\fill}lccD{.}{.}{3}c{\extracolsep\fill}} \toprule &\multicolumn{2}{{}c{}}{\textbf{Spanned heading\tnote{1}}} …

Python(六)函数

函数是一个工具,在输入和输出之间构造一个关系;使用函数方便了代码的复用,避免重新造轮子; 目录 函数的分类 内置函数 自定义函数 函数几种格式对比 无参数,无返回值 有参数,无返回值 无参数&#…

ElasticSearch——地理坐标查询

Elasticsearch 语雀(完整笔记) 所谓的地理坐标查询,其实就是根据经纬度查询,官方文档:Geo queries | Elasticsearch Guide [8.8] | Elastic 常见的使用场景包括: 携程:搜索我附近的酒店滴滴…

Linux服务器Jenkins部署打包Flutter

程序猿日常 记Jenkins部署打包Flutter参考Linux服务器Jenkins部署打包Flutter 安装Flutter环境 Flutter SDK 下载地址 配置服务器Flutter环境变量 创建任务 #!/bin/bash -ilex source /etc/profileflutter clean flutter pub get flutter build apk

8.OpenCV-识别身份证号码(Python)

需求描述: 通过OpenCV识别身份证照片上的身份证号码(仅识别身份证号码) 实现思路: 1.将身份证号中的0,1,2,3,4,5,6,7,8,9作为模板,与身份证照片中的身份证号码区域进行模板匹配。 2.先要制作一个身份证号码模板&am…

坚鹏:中国邮储银行金融科技前沿技术发展与应用场景第1期培训

中国邮政储蓄银行金融科技前沿技术发展与应用场景第1期培训圆满结束 中国邮政储蓄银行拥有优良的资产质量和显著的成长潜力,是中国领先的大型零售银行。2016年9月在香港联交所挂牌上市,2019年12月在上交所挂牌上市。中国邮政储蓄银行拥有近4万个营业网点…

基于java+swing+mysql图书管理系统V6.0

基于javaswingmysql图书管理系统V6.0 一、系统介绍二、功能展示1.项目骨架2.数据库表3.项目内容4.登陆界面5.管理员-读者注册6、管理员-书籍入库7、管理员-书籍更新8、管理员-书库管理9、管理员-读者更新10、用户-还书11、用户-借书 四、其它1.其他系统实现五.获取源码 一、系统…

【3Ds Max】常用的基本初始化设置

目录 一、单位设置 二、首选项设置 2.1 撤销次数设置 2.2 设置保存时压缩 2.3 设置自动保存时间间隔 2.4 选中模型时高亮显示 一、单位设置 我们以设置毫米单位为例 在 “自定义-》单位设置” 中进行设置 点击“系统单位设置”按钮 如下设置就表示:1个单位长度…

Jmeter_响应数据为空以及中文乱码

目录 一、响应数据为空 解决方法 二、响应中文乱码 产生原因 解决方法 一、响应数据为空 最近做测试接口,使用同样的请求方式、地址、参数和header,在postman中能正常响应,接收数据的也正常,但是在Jmeter中,虽然…

FPGA-DFPGL22学习4-仿真平台学习

文章目录 前言一、仿真的步骤二、使用步骤1.PDS编译仿真库2.编写仿真tb文件3.选择行为仿真4.查看观察窗口5.修改代码后重新编译 总结 前言 和原子哥一起学习FPGA 开发环境:正点原子 ATK-DFPGL22G 开发板 参考书籍: 《ATK-DFPGL22G之FPGA开发指南_V1.1…

OSPF故障定位没思路?照这篇抄就行

我的网工朋友大家好。 好久没聊OSPF技术了,相关基础且经典的内容,公众号陆陆续续分享过一些,趣味科普,面试考题,实验操作,都有涉及。 按照惯例,先给你整一波优质的往期内容: 《 5个…

考研算法30天:堆排序 【堆排序】

原先自己写过这道题的题解,但是当时水平有限所以这次重写一次。 (1条消息) 堆的创建(题目:堆排序)_空が笑っています的博客-CSDN博客 算法介绍 我在上陈越姥姥的课程之后我学会了如何用数组表示一个堆(堆其实就是根节点大于或者…

本地已安装Git。 但是VSCode提示:未找到 Git。点击Git侧边栏选项,按钮都是灰的

问题: 解决方案: 1、点击设置 2、在输入框中输入git.path,然后点击“在settings.json中编辑”, 打开settings.json文件,进行git.path配置; 3、配置git.path,下面两种格式都可以,设…