Redis基础学习

Redis的由来
07年的时候 antirez 创建一个网站
antirez 09年的c语言 内存型的数据库 目的:解决我的性能问题
一、特性:
1.快:基础内存操作 所以我的操作是不需要跟磁盘进行交互,单次的执行会很快
2.命令执行是单线程 因为基于内存操作,单次的执行时间反而比你线程切换的时间快
3.Redis本身就是一个k-v结构 类似与hashMap 所有查询性能是接近o(1)
4.底层的数据结构 比如说跳表、sds(空间换时间)
5.网络模型 IO多路复用

二、高可用
1.很完善的内存管理机制 过期、淘汰、持久化
2.主从、sentinel、cluster集群

三、操作
1.启动命令 ./reids-cli  默认本机
2.flushall 没有做持久化相当于删库跑路

四、数据类型以及使用场景
1、String
a.基本的指令 set  key value  incr key 增加  incrby key 减少 加数字以数字计算
  setnx 存在的话,设置成功
b.应用场景
  缓存  token(过期时间)
  mysql 查询mysql之前 看redis有没有   dcl 双重检索 duoble check lock 只有一个请求打到DB
  单个查询 100ms之外 优化结构10ms(假如mysql优化不了)
  incr 计数相关的场景都能做
  分布式ID
  点赞数 评论数
  软限流
  短信验证次数、库存
  2、Hash 
a.基本的指令 hset key  key value   hget key  key  hincrby key key
  k k v
b.应用场景
  1.缓存对象型的数据
  2.统计型的数据
  3.购物车 但是不会做 只是缓存 redis  cap  ap模型 优先保证可用 不会管数据丢失
3、List
a.基本的指令  lpush  queue a   lrange queue 0 -1  rpush 右边放 rpop 移除右边的元素
存储 有序的列表 
b.应用场景
   1.是不是所有的有序列表 都适合 时间线的
       朋友圈
   2.阻塞消息队列 (不要去做) 因为我们有完善MQ组件 rabbit、rocket ack机制 ap模型
4、Set
a.基本的指令 sadd key value value(多个value) smebers key  
srandmember key 2 随机获取两个元素  spop key 删除一个元素
sdiff key key 两个set的差集  
无序的集合(全部是整型的时候是有序) 元素是不可重复 查询效率是接近O(1)

b.应用场景
1.抽奖
2.集合类的场景 共同的好友
5、sortSet
有序的 不可重复 如果score相同,根据key来
a.基本的指令  zadd key  value score 添加值 zrange z1 0 -1 获取所有值
zrevrange z1 0-1   反顺序获取元素
zrangebyscore z1 20 40  按分数范围获取元素
zscore a 60 给a元素加 60分

b.应用场景
1.排行榜

6.BitMap
001001001001001
指令: setibt  key  5 1  添加元素 第五个位置的元素
 bitcount key  统计元素
 getbit key 获取元素
 应用场景:
 权限:101010

 Redission分布式锁流程图

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于学习Redis基础知识,可以按照以下思路进行学习: 1. 了解Redis的概念和特点:首先需要了解Redis是什么,它的主要特点是什么,它为什么被广泛应用于缓存、消息队列、会话管理等场景。 2. 安装和配置Redis:根据你的操作系统,安装Redis并进行相关配置。可以参考Redis官方文档或其他教程来完成这一步。 3. 学习Redis的数据结构:Redis支持多种数据结构,如字符串、哈希、列表、集合和有序集合等。了解每种数据结构的特点、用途和操作命令,并通过实际操作来加深理解。 4. 掌握Redis的常用命令:学习Redis的常用命令,如get、set、hget、hset、lpush、lrange、sadd、smembers等,了解每个命令的具体用法和参数含义。 5. 理解Redis的持久化机制:了解Redis的RDB和AOF两种持久化方式,以及它们的优缺点。学习如何进行备份和恢复数据。 6. 学习Redis的事务和Lua脚本:了解Redis事务的基本概念和使用方法,以及如何使用Lua脚本来进行复杂的操作。 7. 深入了解Redis的性能优化和高可用方案:学习如何优化Redis的性能,包括配置调优、使用合适的数据结构、合理地使用缓存等。同时了解Redis的高可用方案,如主从复制、哨兵模式和集群模式。 8. 学习Redis与其他技术的结合:了解Redis如何与其他技术进行结合,如与Python、Java等编程语言的配合使用,以及与Spring、Django等框架的整合。 以上是学习Redis基础知识的一个思路,你可以根据自己的实际情况和需求进行学习和拓展。推荐参考一些经典的Redis教程和实战案例,通过实际操作和项目实践来提升自己的技能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值