当前位置: 首页 > news >正文

Redis基础操作以及数据类型

目录

Redis基础操作

java中的i++是不是原子操作?不是

数据类型

1. list

 2. set

 3. Hash哈希

4. Zset有序集合


Redis基础操作

 

 set [key] [value] 设置值   (设置相同的会将原先的覆盖)

 get [key] 获取值

不能覆盖和替换

 

 ttl [key]  以秒为单位返回 key 的剩余过期时间。

 

java中的i++是不是原子操作?

不是原子操作

i=0,两个贤臣分别对i进行++100次。值是多少?2~200

 i++要经过 取值,++,赋值这三个步骤

a线程最后i=1是取值,取的是b中的值,然后必须经过这三个步骤,接下来就是++,和赋值了,那么就是2了。

数据类型

1. list

  按着索引下标获得元素(从左到右)

l

list的数据结构

 2. set

自动排序

不会出现重复数据

可以判断某个数据是否再set集合中sismember

string类型的无序集合

地城hash表

常见命令

 

 3. Hash哈希

通过key和field(属性标签)就可以操作对应的属性数据,既不需要重复存储数据,也不会带来序列化和并发修改的问题。

数据量少用ziplist

数据量大用hashtable

常见命令

4. Zset有序集合

有序集合

没有重读元素的字符串集合

每个成员都关联了一个分数(score)按分数从低到高排序

两个数据结构:

1.hash

关联元素value和score,保障元素value的唯一性。通过value找到对应的score 

field对应value

value对应score

2. 跳跃表

跳跃表的目的在于给元素 value 排序,根据 score 的范围获取元素列表。

通过跳跃表快速定位元素

从最上面一层开始找 如下表所示,从第二层开始。

 

http://www.lryc.cn/news/12980.html

相关文章:

  • 自抗扰控制ADRC之反馈控制律(NLSEF)
  • “生成音乐“ 【循环神经网络】
  • 能否手写vue3响应式原理-面试进阶
  • 前端工程师leetcode算法面试必备-简单的二叉树
  • 【什么程度叫熟悉linux系统】
  • 编译安装MySQL
  • Kubernetes一 Kubernetes之入门
  • SQLServer2000 断电后数据库suspect“置疑”处理
  • 多模态机器学习入门Tutorial on MultiModal Machine Learning——第一堂课个人学习内容
  • Java ~ Collection/Executor ~ LinkedBlockingDeque【总结】
  • .NET7的AOT的使用
  • 分布式缓存的问题
  • golang入门笔记——内存管理和编译器优化
  • GEE学习笔记 七十:【GEE之Python版教程四】Python基础编程二
  • 股票投资新出发之知识体系构建导论
  • 蓝桥杯算法训练合集 十六 1.首字母变大写2.盾神计科导作业3.Cinema4.接水问题
  • 密码的世界
  • 如何用一句话感动测试工程师?产品和技术都这么说!
  • 3|物联网控制|计算机控制-刘川来胡乃平版|第2章:计算机控制系统中的检测设备和执行机构-2.1传感器和变送器|课堂笔记|ppt
  • MySQL中使用索引优化
  • Linux C/C++ 多线程TCP/UDP服务器 (监控系统状态)
  • 【JavaScript】JavaScript基本使用方法
  • Python数据容器、list列表、tuple元组、str字符串、数据容器(序列)切片、set集合、dict字典、字符串大小比较
  • Python urllib
  • Centos7安装Python3
  • [U3D ShaderGraph] 全面学习ShaderGraph节点 | 第四课 | Input/Lighting
  • SpringBoot升级到3.0
  • JavaWeb8-线程安全问题
  • 进程切换-
  • python--matplotlib(2)