Redis学习笔记之ABC
2024-08-25 12:08:10
Redis学习笔记之ABC
Redis命令速查
基本操作
- 字符串操作
set key value
get key
- 哈希
HMSET user:1 username liushijie password arrray7
HGETALL user:1l
- 列表(Redis只有字符串列表)
lpush mylist liushijie
lrange mylist 0 10
- 集合无序、value不会重复
sadd mylist liushijie
smembers mylist
- 有序集合、value不会重复
zadd mylist 0 liushijie
ZRANGEBYSCORE mylist 0 1000
- 删除
DEL key
- 数据库备份。这个命令将创建dump.rdb文件在Redis data目录中。
save
- 获取当前目录
CONFIG get dir:
- 将开始执行备份过程,并在后台运行。
Bgsave
I/O模型
Redis使用单线程的IO复用模型,自己封装了一个简单的AeEvent事件处理框架(http://redis.io/topics/internals-rediseventlib),主要实现了epoll、kqueue和select,对于单纯只有IO操作来说,单线程可以将速度优势发挥到最大,但是Redis也提供了一些简单的计算功能,比如排序、聚合等,对于这些操作,单线程模型实际会严重影响整体吞吐量,CPU计算过程中,整个IO调度都是被阻塞住的。
其他特性
- 订阅-发布
- 事务
- Lua脚本,Reids 2.6 版本开始
为啥快?
数据库完全在内存中,磁盘仅用于持久化。
数据同步机制
- Slave服务器连接到Master服务器.
- Slave服务器发送SYNC命令.
- Master服务器备份数据库到.rdb文件.
- Master服务器把.rdb文件传输给Slave服务器.
- Slave服务器把.rdb文件数据导入到数据库中.
数据过期机制
1、调用的时候发现是已经过期则删除;
2、定期删除。
会不会有延迟
会有延迟,可能有以下原因:
- 同时操作多个元素的时候会产生延迟;
- swapping (操作系统分页)引起的延迟;
- AOF 和硬盘I/O操作延迟;
- 数据过期造成的延迟。
诊断:Redis 看门狗:Redis2.6版本引进了redis看门狗(watchdog)软件,这是个调试工具用于诊断Redis的延迟问题,实验性质的工具。
实例挂了会怎么样?
主挂了:设置临时主的配置。执行命令 SLAVEOF NO ONE 将使得这个从属服务器关闭复制功能,并从从属服务器转变回主服务器,原来同步所得的数据集不会被丢弃。然后在临时主上执行save操作,获取到在data目录下生成的最新的dump.rdb。将这份dump.rdb文件拷贝到主的data目录下,再重启。
部分内容来自网络整理,如果有遗漏,表述不准的地方,请不吝指正!
最新文章
- macOS 我的装机
- Fatal error in launcher: Unable to create process using '";'
- ios更新UI时请尝试使用performSelectorOnMainThread方法
- css选择器(E[att^=”val”]序号选择器)
- storyboard有多个Segue的传递
- 【BZOJ】3771: Triple
- [转]NTLM身份验证
- Javascript里,想把一个整数转换成字符串,字符串长度为2
- C++ const用法小结 (欢迎大家拍砖)
- 性能超越 Redis 的 NoSQL 数据库 SSDB
- 获取前端post方式传过来的JSON格式的数据的代码
- HDU 5678 ztr loves trees
- TCP协议详解
- STM32按键控制程序
- jwplayer 禁止视频的快进,但是可以后退(已实现)
- Instrument详解
- R语言dplyr包初探
- 创建JavaScript函数的几种方式
- ORACLE报错和解决方案
- js判断空字符串、null、undefined、空格、中文空格