
Redis
图 南
这个作者很懒,什么都没留下…
展开
-
redis 数据库这么强大,来看看它有哪些应用场景
redis 的使用场景?redies 的使用场景主要与它的五大类型相关,具体如下:类型特点使用场景string简单key-value类型,value可为字符串和数字常规计数(微博数, 粉丝数等功能)hash是一个string类型的field和value的映射表,hash特别适合用于存储对象存储部分可能需要变更的数据(比如用户信息)list有序可重复列表消息队列等(生产者消费者模型)set无序不可重复列表存储并计算关系(如微博,关注人或粉丝存放在集合原创 2020-08-06 09:34:51 · 146 阅读 · 0 评论 -
redis 过期 key 的删除策略
redis 过期 key 的删除策略1,主动出击 1,将带过期时间的key存到一个独立的字典中 默认每100毫秒进行一次过期扫描 1,在过期字典中随机 20个 key 2,检查过期时间,删除已过期的key 3, 如果过期key 比例 超过 1/4 重复 1-3 默认25ms 超时时间, 避免扫描卡死问题: 大量key同时过期,redis会有卡顿现象解决方原创 2020-08-07 10:42:04 · 172 阅读 · 0 评论 -
你了解python 字典的实现原理和 redis 的哈希原理吗?
python 字典:当我们 使用 d = {} 创建字典时,其实python是创建了一个长度为8的数组。当我们插入key,也就是创建键值对时,给字典的key计算一个哈希值,将哈希值转换成十进制后,通过与8进行取余操作,计算出这个key的位置。python 字典的哈希碰撞:例:d['a'] = 123 d['z'] = 123 当我们给这两个key寻找位置时,假如算出来的位置值一样,hash('a')=4 hash('z')=4此时就出现了哈希碰撞。解决方案:pytho..原创 2020-08-07 10:49:13 · 225 阅读 · 0 评论 -
redis 的事务处理?
redis的事务 - 不保证原子性,保证一定的隔离性MULTI 开启事务后,命令进入服务端的命令队列,当服务端输入 exec这个指令时,redis逐一执行命令队列的redis命令。1、MULTI # 开启事务 mysql begin2、命令1 # 执行命令 3、命令2 ... ...4、EXEC # 提交到数据库执行 mysql commit4、DISCARD # 取消事务 mysql 'rollback'redi原创 2020-08-07 10:50:37 · 127 阅读 · 0 评论 -
内存型数据库也能做到持久性, 来看看 redis 的持久性
持久化定义**将数据从掉电易失的内存放到永久存储的设备上为什么需要持久化因为所有的数据都在内存上,所以必须得持久化RDB模式(默认开启)1、保存真实的数据2、将服务器包含的所有数据库数据以二进制文件的形式保存到硬盘里面3、默认文件名 :/var/lib/redis/dump.rdbRDB 的缺点1、创建RDB文件需要将服务器所有的数据库的数据都保存起来,这是一个非常消耗资源和时间的操作,所以服务器需要隔一段时间才创建一个新的RDB文件,也就是说,创建RDB文件不能执行的过于频原创 2020-08-07 10:52:36 · 425 阅读 · 0 评论 -
redis 的主从复制和哨兵?
主从复制定义1、一个Redis服务可以有多个该服务的复制品,这个Redis服务成为master,其他复制品成为slaves2、master会一直将自己的数据更新同步给slaves,保持主从同步3、只有master可以执行写命令,slave只能执行读命令作用1,分担了读的压力(高并发),提高服务能力2,避免单点问题 【如果系统中 一个进程挂掉,整个系统挂掉,即为单点问题】原理从服务器执行客户端发送的读命令,比如GET、LRANGE、SMEMMBERS、HGET、ZRANG..原创 2020-08-07 10:54:24 · 130 阅读 · 0 评论