随笔分类 - Redis
摘要:Redis数据结构之String 常用命令 set <key> <value> 添加键值对 get <key> 查询对应键值 append <key> <value> 将给定的<value>追加到原值的末尾 strlen <key> <value> 只有在key不存在时,才设置key的值 incr
阅读全文
摘要:缓存穿透、缓存击穿、缓存雪崩 缓存穿透 问题描述 key对应的数据在数据源中并不存在,每次针对此key的请求从缓存获取不到,请求都会压到数据源,从而可能压垮数据源。比如用一个不存在的用户id获取用户信息,不论缓存还是数据库中都没有,若黑客利用此漏洞进行攻击可能压垮数据库。 解决方案 对空值缓存:如果
阅读全文
摘要:Redis集群 是什么 Redis集群实现了对Redis的水平扩容,即启动N个redis节点,将整个数据库分布存储在这N个节点中,每个节点存储总数据的1/N. Redis集群通过分区来提供一定程度的可用性:即使集群中有一部分节点失效或者无法进行通讯,集群也可以继续处理命令请求 实现步骤 删除持久化数
阅读全文
摘要:Redis主从复制 是什么 主机数据更新后根据配置和策略,自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主。 能干嘛 读写分离,性能扩展 容灾快速恢复 创建过程 创建/myredis文件夹 复制redis.conf配置文件到文件夹中 配置一主两从,创建三个配置
阅读全文
摘要:redis的持久化 RDB 是什么 在指定的时间间隔内将内存中的数据集快照写入磁盘。 备份是如何执行的 Redis会单独创建一个子进程来进行持久化,会先将数据写入到一个临时文件中,待持久化进程都结束了,再用这个临时文件替换上次持久化好的文件。整个过程中,主进程是不进行任何IO操作的,这就确保了极高的
阅读全文
摘要:Redis的事务及锁 事务 事务中主要的命令有三个: multi:组队阶段,还未执行 exec:执行阶段,将multi的队列放进 exec中 discard:放弃multi在队列中的值 事务的成功 事务的失败 组队中某个命令出现了报告错误,执行时整个的所有队列都会被取消。 如果执行阶段某个命令报出了
阅读全文
摘要:Redis数据结构之Zset 常用命令 zadd <key> <score1> <value1> <score2> <value2> ... 将一个或多个member元素及其score值加入到有序集key当中 zrange <key> <start> <stop> [withsocres] 返回有序
阅读全文
摘要:Redis数据结构之Set 常用命令 sadd <key> <value1> <value2> ... 将一个或多个member元素加入到集合key中,已经存在的member元素将被忽略 smembers <keys> 取出该集合的所有值 sismember <key> <value> 判断集合<k
阅读全文
摘要:Redis数据结构之Hash 常用命令 hset <key> <field> <value> 给<key>集合中的<field>键赋值<value> hget <key> <field> 从<key>集合<field>取出value hmset <key1> <field1> <value1> <f
阅读全文
摘要:Redis数据结构之list 常用命令 lpush\rpush <key> <value1> <value2> <value3>... 从左边/右边插入一个或多个值,类似推箱子。 lpop/rpop <key> 从左边/右边吐出一个值。值在键在,值光键亡 rpoplpush <key1> <key2
阅读全文
摘要:redis和memcached的区别 memcached仅支持key-value这种单一的数据类型,Redis还支持list,set,hash等数据类型 memcached数据存储在内存中,不做持久化,Redis可以做持久化 memcached使用多线程+锁的机制,而Redis用单线程+IO多路复用
阅读全文
浙公网安备 33010602011771号