首页 > 数据库 >Redis学习记录第七天

Redis学习记录第七天

时间:2023-12-09 14:32:20浏览次数:44  
标签:name 记录 Redis 支持 键值 key 集合 第七天

        今天我们继续深入学习Redis,探讨了Redis的数据结构类型以及一些高级功能。首先,我们先来回顾一下Redis支持的数据结构类型:

  1. String(字符串):最基本的数据结构类型,可以存储字符串、数字等数据。
  2. Hash(哈希):键值对的集合,可以用于存储对象,支持添加、删除、获取单个或多个键值对。
  3. List(列表):有序字符串的集合,支持从两端添加、弹出元素,也支持获取指定范围的元素。
  4. Set(集合):无序字符串的集合,支持添加、删除、求交集、并集、差集等操作。
  5. Sorted Set(有序集合):集合的升级版,每个元素都有一个分数,根据分数排序。支持添加、删除、获取指定分数范围内的元素等操作。

接下来,我们来看一下Redis的一些高级功能:

  1. Pub/Sub(发布/订阅):可以实现消息的广播和订阅,常用于实时消息推送、实时数据处理等场景。
  2. Stream(流):Redis 5.0引入的新功能,类似于消息队列,可以用于实现数据的流式处理和高并发场景下的数据传输。
  3. HyperLogLog(基数统计):用于统计大数据量的基数,常用于统计网站访问量等场景。
  4. Lua脚本:Redis支持在服务器端执行Lua脚本,可以用于实现复杂的业务逻辑。
  5. 事务:支持将多个命令打包成一个事务,保证事务的原子性和顺序性。
  6. 持久化:通过RDB和AOF两种方式实现数据持久化,保证数据的可靠性和恢复能力。

下面是一个简单的示例代码,演示如何使用Python的redis库来操作Redis:

python
 import redis  
 
   
 
 # 连接到Redis  
 
 r = redis.Redis(host='localhost', port=6379, db=0)  
 
   
 
 # 设置一个key-value键值对  
 
 r.set('name', 'Alice')  
 
   
 
 # 设置一个带有过期时间的key-value键值对  
 
 r.setex('age', 20)  
 
   
 
 # 设置一个hash结构的key-value键值对  
 
 r.hmset('user', {'name': 'Bob', 'age': 30})  
 
   
 
 # 获取一个key的值  
 
 print(r.get('name'))  # b'Alice'  
 
   
 
 # 获取一个hash结构的key中的值  
 
 print(r.hget('user', 'name'))  # b'Bob'

标签:name,记录,Redis,支持,键值,key,集合,第七天
From: https://blog.51cto.com/u_12830878/8748980

相关文章

  • 分布式学习记录,第三天
       在分布式学习的探索之旅中,我们继续深入学习并实践了分布式学习的核心概念和技巧。第三天,我们主要关注于分布式学习中的同步和异步策略,以及如何优化通信开销以进一步提高学习效率。    首先,我们讨论了分布式学习中的同步策略。同步策略是指在所有计算节点上同时进......
  • 常见场景题-Redis的bitmap如何实现签到功能?
    Redis的bitmap实现签到系统?答:主要讲一下Redis原生的bitmap的使用方法,以及如何使用bitmap来实现签到功能先来看一下如何使用redisbitmap的原生命令实现签到功能:签到我们先来设计key:userid:yyyyMM,那么假如usera在2023年10月3日和2023年10月4日签到的话,使用以下命令:se......
  • Redis生产实战-Redis集群故障探测以及降级方案设计
    Redis集群故障探测在生产环境中,如果Redis集群崩溃了,那么会导致大量的请求打到数据库中,会导致整个系统都崩溃,所以系统需要可以识别缓存故障,限流保护数据库,并且启动接口的降级机制降级方案设计我们在系统中操作Redis一般都是通过工具类来进行操作的,假设工具类有两个RedisCache......
  • SQL PRIMARY KEY 约束- 唯一标识表中记录的关键约束
    SQLNOTNULL约束SQLNOTNULL约束用于强制确保列不接受NULL值。这意味着该字段始终包含一个值,而不允许插入新记录或更新记录时不提供此字段的值。在CREATETABLE时使用SQLNOTNULL以下SQL确保在创建"Persons"表时,“ID”、“LastName”和“FirstName”列将不接受......
  • SQL PRIMARY KEY 约束- 唯一标识表中记录的关键约束
    SQLNOTNULL约束SQLNOTNULL约束用于强制确保列不接受NULL值。这意味着该字段始终包含一个值,而不允许插入新记录或更新记录时不提供此字段的值。在CREATETABLE时使用SQLNOTNULL以下SQL确保在创建"Persons"表时,“ID”、“LastName”和“FirstName”列将不接......
  • Redis基础(六)-Redis客户端
    Redis官方对Java语言的封装框架推荐的有十多种,主要是Jedis、Redisson。Jedis和Redisson都是Java中对Redis操作的封装。Jedis只是简单的封装了Redis的API库,可以看作是Redis客户端,它的方法和Redis的命令很类似。Redisson不仅封装了redis,还封装了对更多数据结构的支持,以及......
  • Redis基础(七)-Redis6的事务操作
    Redis的事务定义Redis事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。Redis的事务作用Redis事务的主要作用就是串联多个命令防止别的命令插队。Multi、Exec、discard从输入Multi命令开始,输入的命......
  • 2023最新中级难度Go语言面试题,包含答案。刷题必备!记录一下。
    好记性不如烂笔头内容来自面试宝典-中级难度Go语言面试题合集问:请描述一下Go语言的并发模型,并解释一下为什么它适合现代Web应用?Go语言的并发模型是基于CSP(CommunicatingSequentialProcesses,通信顺序进程)理论,主要是通过goroutine和channel来实现并发的。goroutine可以看......
  • 2023最新高级难度Go语言面试题,包含答案。刷题必备!记录一下。
    好记性不如烂笔头内容来自面试宝典-高级难度Go语言面试题合集问:请深入解释Go语言的内存分配和GC(垃圾回收)机制,以及它们如何影响程序的性能。Go语言的内存管理由内置的垃圾回收器自动进行,它将内存分为三个区域:堆、栈和全局区。栈存放局部变量、参数、返回地址等小对象,堆存......
  • 『做题记录』[AGC032B] Balanced Neighbors
    [AGC032B]BalancedNeighborslink:https://atcoder.jp/contests/agc032/tasks/agc032_bDescription  给定整数\(N\),构造一个从\(1\)到\(N\)编号的\(N\)个节点的无向图,使得:该图不含有重边和自环,并且是连通的。每个节点的所有邻接节点的编号之和相同。  \(N\l......