下载APP 编程狮,随时随地学编程
返回 首页

Redis开发运维实践指南

Redis 删除元素

lrem key count value 

从key对应list中删除count个和value相同的元素。count为0时候删除全部,count为正,则删除匹配count个元素,如果为负数,则是从右侧扫描删除匹配count个元素。复杂度是O(N),N是List长度,因为List的值不唯一,所以要遍历全部元素,而Set只要O(log(N))。

lpop key 

从list的头部删除元素,并返回删除元素。如果key对应list不存在或者是空返回nil,如果key对应值不是list返回错误。

rpop 

同上,但是从尾部删除。


目录
Redis简述

Redis 数据操作

Redis key操作

Redis 列出key
Redis 测试指定key是否存在
Redis 删除给定key
Redis 返回给定key的value类型
Redis 返回从当前数据库中随机选择的一个key
Redis 原子的重命名一个key
Redis Key的超时设置处理

Redis 字符串操作

Redis 设置key对应的值为string类型的value
Redis 获取key对应的string值
Redis 增减操作
Redis 追加字符串
Redis 截取字符串
Redis 改写字符串
Redis 返回子字符串
Redis 中文字符串处理
Redis 取指定key的value值的长度
Redis 位操作

Redis 列表操作

Redis 添加元素
Redis 查看列表长度
Redis 查看元素
Redis 查看一段列表
Redis 截取list
Redis 删除元素
Redis 设置list中指定下标的元素值
Redis 阻塞队列

Redis 集合操作

Redis 添加元素
Redis 移除元素
Redis 删除并返回元素
Redis 随机返回一个元素
Redis 集合间移动元素
Redis 查看集合大小
Redis 判断member是否在set中
Redis 集合交集
Redis 集合并集
Redis 集合差集
Redis 获取所有元素

Redis 有序集合操作

Redis 删除元素
Redis 增加score
Redis 获取排名
Redis 获取排行榜
Redis 返回给定分数区间的元素
Redis 返回集合中score在给定区间的数量
Redis 返回集合中元素个数
Redis 返回给定元素对应的score
Redis 评分的聚合

Redis 哈希操作

Redis 设置hash值
Redis 获取hash值
Redis 递增某一个域的值
Redis 判断某一个域是否存在
Redis 删除域
Redis 获取域的数量
Redis 获取所有的域名
Redis 获取所有域的值
Redis 获取所有域名和值

Redis HyperLogLog操作

Redis 返回给定 HyperLogLog 的基数估算值
Redis 将元素添加至 HyperLogLog
Redis 合并多个 HyperLogLog

Redis 专题功能

Redis 排序
Redis 事务
Redis 流水线
Redis 发布订阅

Redis 开发设计规范

Redis 超时设置
Redis 内存考虑
Redis 延迟考虑
Redis 典型使用场景参考
Redis 客户端推荐

Redis 上线部署规划

Redis 内存、CPU规划
Redis 网卡RPS设置
Redis 服务器部署位置
Redis 持久化设置
Redis 多实例配置
Redis 具体设置参数
Redis 其他好用的配置技巧

Redis 常见运维操作

Redis 停止
Redis 查看和修改配置
Redis 批量执行操作
Redis 选择数据库
Redis 清空数据库
Redis 重命名命令
Redis 执行lua脚本
Redis 设置密码
Redis 验证密码
Redis-cli命令行其他操作

Redis 持久化与备份恢复

RDB相关操作
AOF相关操作
Redis 备份
Redis 恢复

Redis 数据迁移

Redis 将key从当前数据库移动到指定数据库

Redis 问题处理

Redis 一般处理流程

Redis 探测服务是否可用
Redis 探测服务延迟
Redis 查看统计信息
Redis 获取慢查询
Redis 查看客户端
Redis 查看日志

Redis 并发延迟检查

Redis 检查CPU情况
Redis 检查网络情况
Redis 检查系统情况
Redis 检查连接数
Redis 检查持久化
Redis 检查命令执行情况

Redis 内存检查

Redis 系统swap内存查看
Redis 系统内存查看
Redis info查看内存
Redis dump.rdb文件成生内存报告(rdb-tool)
Redis query在线分析
Redis 内存抽样分析
Redis 统计生产上比较大的key
Redis 查看key内部结构和编码等信息
Redis Rss增加,内存碎片增加

Redis 测试方法

Redis 模拟oom
Redis 模拟宕机
Redis 模拟hang
Redis 快速产生测试数据
Redis 模拟RDB load情形
Redis 模拟AOF加载情形

Redis安全问题

Redis Shell提权问题

Redis 高可用和集群简述

Redis 高可用与分片的概念
Redis 高可用主要场景和对应思路
Redis 分片主要场景和对应思路
Redis 适用场景对比列表

Redis 高可用和集群架构与实践

Redis 主从复制-sentinel架构

Redis 高可用原理

Redis 发现原理
Redis 基本切换原理

Redis 环境搭建

Redis 部署架构
Redis 网络规划
Redis 用户规划
Redis 持久化规划
Redis 目录规划
Redis 部署步骤
Redis 配置文件

Redis 维护操作

Redis 完整启动
启停redis
Redis 手动启动
Redis 启停sentinel
Redis 查看sentinel状态
Redis 查看master地址和端口
Redis 查看master配置
Redis 重置该sentinel
Redis 动态修改sentinel配置
Redis 主动切换
Redis 判断主从是否完全一致
Redis 接收所有事件信息

Redis 高可用和异常测试

Redis 测试环境介绍
Redis 手动切换测试
Redis 主实例宕测试
Redis 单从实例宕测试
Redis 双从实例宕测试
Redis 单sentinel宕测试
Redis 双sentinel宕测试
Redis master所在主机整体宕测试
Redis slave所在主机整体宕测试
Redis 脑裂测试
Redis quorum测试
Redis Master hang死测试
附:Redis sentinel.conf被修改后的含义
附:Redis sentinel事件含义

Redis 其他问题

Redis 只读性
Redis 事件通知
Redis 虚拟IP切换
Redis 持久化动态修改
Redis Sentinel最大连接数

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }