Reids
2021-02-24 17:08:24   19  举报             
     
         
 AI智能生成
  Redis笔记
    作者其他创作
 大纲/内容
  String 类型    
     获取数据常用命令    
     字符串操作常用命令    
     mset     
     一次性设置多个键值对  
     mget    
     一次性获取多个键值对  
     append    
     追加字符串  
     getRange    
     获取从指定位置开始到结束位置的字符串,
如果结束位置为-1则获取从开始到最后一个字符
    如果结束位置为-1则获取从开始到最后一个字符
 setRange    
     覆盖从指定位置开始的字符串  
     strLen    
     获取字符串长度  
     数值字符常用命令    
     incr    
     数值加一  
     incrBY    
     增加指定数值  
     derc    
     数值减一  
     dercBY    
     减去指定数值  
     incrBYfloat    
     加float类型的数值  
     GetSet    
     可以在一个操作中设置一个新值,返回旧值  
     其他常用命令    
     type [key]    
     获取当前值的类型  
     二进制安全    
     当Value值为中文的时候会根据不同的编码获取到不同的长度  
     中文是字节流  
     在不同编码下,获取到的二进制数值是不同的,
为了防止因为不同客户端编码不同而导致乱码的问题
  
    为了防止因为不同客户端编码不同而导致乱码的问题
 使用 Redis 注意事项    
     统一编码    
     如果不进行编码的统一可能会出现乱码的我问题  
     List 类型    
     数据结构    
     双向循环链表结构  
     支持的数据结构    
     栈  
     队列  
     数组  
     阻塞,单播队列  
     提问    
     1.什么是单播队列  
     2.在什么情况下需要使用阻塞的单播队列  
     3.在被阻塞的情况下还可以对Redis进行其他操作么  
     常用命令    
     help @List    
     查看 所有List操作的相关命令  
     lpush    
     从第一个数据开始,向第一个数据的左边开始存放数据的方式保存数据  
     rpush    
     和lpush命令相反  
     lpop    
     以先进先出的方式逐个弹出list中的值,
注意这里无论list中存在几条数据每次都只弹出一条数据
    注意这里无论list中存在几条数据每次都只弹出一条数据
 LREM    
     移除某些元素  
     LInsert [KEY] after [value1] [value2]    
     在[value1]后面插入[value2]  
     LInsert [KEY] before [value1] [value2]    
     在[value1]前面插入[value2]  
     blpop    
     当使用这个命令的时候,如果这个key不存在或者没有值,
Redis会进入阻塞状态等待其他客户端放入值,当其他客户
端放入完成后才会释放其阻塞状态
  
    Redis会进入阻塞状态等待其他客户端放入值,当其他客户
端放入完成后才会释放其阻塞状态
 Ltrim    
     移除List两端的数据  
     Hash类型    
     常用命令    
     hset    
     设置一个值  
     hget    
     获取一个值  
     hmset    
     设置多个键值对  
     hmget    
     获取多个键值对  
     hkeys    
     获取所有key的值  
     hvalues    
     获取所有值  
     hgetAll    
     获取所有键和值  
     hIncrByFloat    
     为指定数据增加小数数值  
     常用操作    
     数值计算  
     应用场景    
     点赞  
     收藏  
     详情页  
     Set类型    
     特性    
     去重  
     无序  
     可实现功能    
     实现交集  
     实现并集  
     实现差集  
     可产生随机事件    
     应用场景    
     抽奖   
     可能出现的问题    
     可能出现重复抽取  
     人小于礼物数量该怎么抽  
     人大于礼物数量该怎么抽  
     常用命令    
     sAdd    
     添加一个或多个元素  
     sRem    
     删除一个或多个元素  
     sMembers    
     获取所有元素  
     sCard    
     获取集合中元素的个数  
     Sorted_Set类型    
     特性    
     每个值都有一个分值  
     每个都有一个索引,也可以理解成下标  
     物理内存左小右大,
不随命令发生变化
    不随命令发生变化
 不可重复  
     有序  
     权重操作  
     常用命令    
     zAdd    
     添加一个元素  
     zRange    
     查看 一个元素所有的值  
     zRangeByScore    
     给定一个分值的范围,通过分值获取元素
例如:获取分值为5到10之间的元素
    例如:获取分值为5到10之间的元素
 zScore    
     通过元素取出分值  
     zRank    
     获取元素的排名  
     zUnionStore    
     计算给定的numkeys个有序集合的并集  
     面试相关    
     Sorted_Set 是如何实现增删改查的速度的    
     跳跃表  
     提问?    
     什么是跳跃表  
     基础知识    
     磁盘维度    
     寻址    
     毫秒级  
     带宽    
     G/M  
     内存    
     寻址    
     纳秒  
     磁盘比内存寻址慢10万倍  
     秒数时间等级    
     秒    
     毫秒    
     微秒    
     纳秒  
     IO buffer    
     磁盘扇区    
     扇区大小:512字节  
     从磁盘读取数据最少4k  
     提问    
     512字节会导致什么问题?为什么会导致索引增大  
     data page又是什么?又有什么作用  
     上述问题解答链接:    
     https://m.yisu.com/zixun/34980.html  
     数据库基础知识    
     表变大,性能下降    
     有索引,增删改变慢  
     有索引,查询    
     一个或少量查询依然很快  
     并发量大会受带宽影响查询速度  
     早期数据库瓶颈    
     磁盘关系型数据库    
     io限制  
     带宽限制  
     内存级别关系型数据库    
     SAP HANA    
     缺点:    
     太贵,一个套餐两个亿  
     数据涨出    
     数据在内存和磁盘的体积不一样  
     优点:速度快  
     解决办法:    
     折中:缓存  
     Redis特性    
     1.单进程、单线程、单实例  
     2.多路复用    
     epoll    
     BIO 阻塞线程  
     NIO 同步非阻塞  
     NIO 异步非阻塞  
     提问:什么是多路复用    
     要学习多路复用首先必须了解几个东西    
     1.select系统调用  
     2.select/poll 和 epoll的区别  
     和mamcached对比    
     相同    
     同样是以键值对的方式存储  
     不同    
     value没有数据类型  
     Redis数据类型    
     String    
     bitmaps  
     String 类型操作  
     数字类型操作  
     Hash    
     哈希表  
     List    
     集合  
     Set    
     无序集合  
     Sort Set    
     有序集合  
     相关网站    
     数据库架构选型网站    
     https://db-engines.com/en/  
     Redis中文官方网站    
     http://redis.cn/  
     Redis     
     http://redisdoc.com/persistence/bgsave.html  
     常用命令    
     redis-cli    
     进入Redis 客户端  
     exit    
     退出客户端  
     redis-cli -h    
     帮助  
     redis-cli -p 6380    
     连接端口号为6380的Redis  
     发布订阅    
     帮助命令    
     help @pubsub  
     常用命令    
     Publish    
     发布一条消息  
     SubScribe    
     订阅一条消息  
     业务场景    
     聊天系统  
     解决难题    
     三天内的聊天历史难题   
     Redis 事务    
     常用命令    
     MULTI    
     开启事务  
     exec    
     执行事务  
     Watch    
     监控一个事务  
     提问    
     如何使用这个命令  
     具体如何进行监控  
     注意事项    
     无论那个事务,谁先调用exec则会被优先执行  
     Redis Modle    
     布隆(Bloom)过滤器    
     提问    
     什么是缓存穿透  
     如果不解决缓存穿透会发生什么  
     布隆过滤器是如何解决缓存穿透的  
     这个需要重新看  
     Redis 持久化    
     RDB    
     快照/副本    
     时点性    
     写时复制(copyonwrite)  
     实现时点性    
     save命令  
     bgsave命令  
     配置文件  
     RDB缺点    
     不支持拉链,只有一个dump.rdb  
     丢失数据相对多  
     AOF    
     日志    
     优点    
     丢失数据相对少  
     缺点    
     相比RDB较慢  
     Redis 主从复制  
     linux 知识    
      管道(pipeline)    
     管道会触发创建子进程是什么意思  
     前一个命令的输出会作为后一个命令的输入  
     pstree    
     以树状图的方式显示父进程和子进程之间的关系  
    
 
 
 
 
  0 条评论
 下一页
  
   
  
  
  
  
  
  
  
  
  
  
 