初识redis(String,Hash,List,Set,SortedSet)

2024-09-05 22:28

本文主要是介绍初识redis(String,Hash,List,Set,SortedSet),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

认识NoSql

sql关系型数据库 nosql非关系型数据库

nosql具有非结构化,Key/Value,Document,Draph

无关联的,非sql,BASE(原子性,持久性,一致性,隔离性)

认识redis

特征:

键值(key-value)型,value支持多种不同数据结构,功能丰富

单线程,每个命令具备原子性

低延迟,速度快(基于内存、I0多路复用、良好的编码)

支持数据持久化

支持主从集群、分片集群

支持多语言客户端

Redis数据结构介绍

Redis是一个key-value的数据库,key一般是String类型,不过value的类型多种多样

String类型

KEYS:查看符合模板的所有key,不建议在生产环境设备上使用

DEL:删除一个指定的key

EXISTS:判断key是否存在

EXPIRE:给一个key设置有效期,有效期到期时该key会被自动删除

TTL:查看一个KEY的剩余有效期

通过help[command]可以查看一个命令的具体用法

Key的结构

String类型三种格式:

1.字符串

2.int

3.float

Redis的key的格式:

【项目名】:【业务名】:【类型】:【id】

Hash类型

Hash类型,也叫散列,其value是一个无序字典,类似于Java中的HashMap结构。

String结构是将对象序列化为JSON字符串后存储,当需要修改对象某个字段时很不方便

List类型

Redistribution中的List类型与Java中的Linked List类似,可以看作是一个双向链表结构,既可以支持正向检索和也可以支持反向检索。

特征也与Linked List类似:

1.有序

2.元素可以重复

3.插入和删除块

4.查询速度一般

Set类型

Redis的set结构与Java中的Hash Set类型,可以看做是一个value为null的HashMap。因为也是一个hash表,因此具备与Hash Set类似的特性:

1.无序

2.元素不可重复

3.查找块

4.支持交集,并集,差集等功能

SortedSet类型

Redis的Sortedset是一个可排序的set集合,与lava中的Treeset有些类似,但底层数据结构却差别很大。Sortedset中的每一个元素都带有一个score属性,可以基于score属性对元素排序,底层的实现是一个跳表(SkipList)加 hash表。Sortedset具备下列特性:

可排序

元素不重复

查询速度快

因为Sortedset的可排序特性,经常被用来实现排行榜这样的功能。

这篇关于初识redis(String,Hash,List,Set,SortedSet)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1140237

相关文章

Redis 的 SUBSCRIBE命令详解

《Redis的SUBSCRIBE命令详解》Redis的SUBSCRIBE命令用于订阅一个或多个频道,以便接收发送到这些频道的消息,本文给大家介绍Redis的SUBSCRIBE命令,感兴趣的朋友跟随... 目录基本语法工作原理示例消息格式相关命令python 示例Redis 的 SUBSCRIBE 命令用于订

sky-take-out项目中Redis的使用示例详解

《sky-take-out项目中Redis的使用示例详解》SpringCache是Spring的缓存抽象层,通过注解简化缓存管理,支持Redis等提供者,适用于方法结果缓存、更新和删除操作,但无法实现... 目录Spring Cache主要特性核心注解1.@Cacheable2.@CachePut3.@Ca

Redis实现高效内存管理的示例代码

《Redis实现高效内存管理的示例代码》Redis内存管理是其核心功能之一,为了高效地利用内存,Redis采用了多种技术和策略,如优化的数据结构、内存分配策略、内存回收、数据压缩等,下面就来详细的介绍... 目录1. 内存分配策略jemalloc 的使用2. 数据压缩和编码ziplist示例代码3. 优化的

redis-sentinel基础概念及部署流程

《redis-sentinel基础概念及部署流程》RedisSentinel是Redis的高可用解决方案,通过监控主从节点、自动故障转移、通知机制及配置提供,实现集群故障恢复与服务持续可用,核心组件包... 目录一. 引言二. 核心功能三. 核心组件四. 故障转移流程五. 服务部署六. sentinel部署

基于Redis自动过期的流处理暂停机制

《基于Redis自动过期的流处理暂停机制》基于Redis自动过期的流处理暂停机制是一种高效、可靠且易于实现的解决方案,防止延时过大的数据影响实时处理自动恢复处理,以避免积压的数据影响实时性,下面就来详... 目录核心思路代码实现1. 初始化Redis连接和键前缀2. 接收数据时检查暂停状态3. 检测到延时过

Redis实现分布式锁全过程

《Redis实现分布式锁全过程》文章介绍Redis实现分布式锁的方法,包括使用SETNX和EXPIRE命令确保互斥性与防死锁,Redisson客户端提供的便捷接口,以及Redlock算法通过多节点共识... 目录Redis实现分布式锁1. 分布式锁的基本原理2. 使用 Redis 实现分布式锁2.1 获取锁

Redis中哨兵机制和集群的区别及说明

《Redis中哨兵机制和集群的区别及说明》Redis哨兵通过主从复制实现高可用,适用于中小规模数据;集群采用分布式分片,支持动态扩展,适合大规模数据,哨兵管理简单但扩展性弱,集群性能更强但架构复杂,根... 目录一、架构设计与节点角色1. 哨兵机制(Sentinel)2. 集群(Cluster)二、数据分片

C++ STL-string类底层实现过程

《C++STL-string类底层实现过程》本文实现了一个简易的string类,涵盖动态数组存储、深拷贝机制、迭代器支持、容量调整、字符串修改、运算符重载等功能,模拟标准string核心特性,重点强... 目录实现框架一、默认成员函数1.默认构造函数2.构造函数3.拷贝构造函数(重点)4.赋值运算符重载函数

redis数据结构之String详解

《redis数据结构之String详解》Redis以String为基础类型,因C字符串效率低、非二进制安全等问题,采用SDS动态字符串实现高效存储,通过RedisObject封装,支持多种编码方式(如... 目录一、为什么Redis选String作为基础类型?二、SDS底层数据结构三、RedisObject

Java List 使用举例(从入门到精通)

《JavaList使用举例(从入门到精通)》本文系统讲解JavaList,涵盖基础概念、核心特性、常用实现(如ArrayList、LinkedList)及性能对比,介绍创建、操作、遍历方法,结合实... 目录一、List 基础概念1.1 什么是 List?1.2 List 的核心特性1.3 List 家族成