Redis学习笔记之ABC

Redis命令速查

官方帮助文档

中文版本1

中文版本2(反应速度比较慢)

基本操作

  1. 字符串操作
set key value
get key
  1. 哈希
HMSET user:1 username liushijie password arrray7
HGETALL user:1l
  1. 列表(Redis只有字符串列表)
lpush mylist liushijie
lrange mylist 0 10
  1. 集合无序、value不会重复
sadd mylist liushijie
smembers mylist
  1. 有序集合、value不会重复
zadd mylist 0 liushijie
ZRANGEBYSCORE mylist 0 1000
  1. 删除
DEL key
  1. 数据库备份。这个命令将创建dump.rdb文件在Redis data目录中。
save
  1. 获取当前目录
CONFIG get dir:
  1. 将开始执行备份过程,并在后台运行。
Bgsave

I/O模型

Redis使用单线程的IO复用模型,自己封装了一个简单的AeEvent事件处理框架(http://redis.io/topics/internals-rediseventlib),主要实现了epoll、kqueue和select,对于单纯只有IO操作来说,单线程可以将速度优势发挥到最大,但是Redis也提供了一些简单的计算功能,比如排序、聚合等,对于这些操作,单线程模型实际会严重影响整体吞吐量,CPU计算过程中,整个IO调度都是被阻塞住的。

其他特性

  1. 订阅-发布
  2. 事务
  3. Lua脚本,Reids 2.6 版本开始

为啥快?

数据库完全在内存中,磁盘仅用于持久化。

数据同步机制

  1. Slave服务器连接到Master服务器.
  2. Slave服务器发送SYNC命令.
  3. Master服务器备份数据库到.rdb文件.
  4. Master服务器把.rdb文件传输给Slave服务器.
  5. Slave服务器把.rdb文件数据导入到数据库中.

数据过期机制

1、调用的时候发现是已经过期则删除;

2、定期删除。

会不会有延迟

会有延迟,可能有以下原因:

  1. 同时操作多个元素的时候会产生延迟;
  2. swapping (操作系统分页)引起的延迟;
  3. AOF 和硬盘I/O操作延迟;
  4. 数据过期造成的延迟。

诊断:Redis 看门狗:Redis2.6版本引进了redis看门狗(watchdog)软件,这是个调试工具用于诊断Redis的延迟问题,实验性质的工具。

实例挂了会怎么样?

主挂了:设置临时主的配置。执行命令 SLAVEOF NO ONE 将使得这个从属服务器关闭复制功能,并从从属服务器转变回主服务器,原来同步所得的数据集不会被丢弃。然后在临时主上执行save操作,获取到在data目录下生成的最新的dump.rdb。将这份dump.rdb文件拷贝到主的data目录下,再重启。

部分内容来自网络整理,如果有遗漏,表述不准的地方,请不吝指正!

最新文章

  1. macOS 我的装机
  2. Fatal error in launcher: Unable to create process using '"'
  3. ios更新UI时请尝试使用performSelectorOnMainThread方法
  4. css选择器(E[att^=”val”]序号选择器)
  5. storyboard有多个Segue的传递
  6. 【BZOJ】3771: Triple
  7. [转]NTLM身份验证
  8. Javascript里,想把一个整数转换成字符串,字符串长度为2
  9. C++ const用法小结 (欢迎大家拍砖)
  10. 性能超越 Redis 的 NoSQL 数据库 SSDB
  11. 获取前端post方式传过来的JSON格式的数据的代码
  12. HDU 5678 ztr loves trees
  13. TCP协议详解
  14. STM32按键控制程序
  15. jwplayer 禁止视频的快进,但是可以后退(已实现)
  16. Instrument详解
  17. R语言dplyr包初探
  18. 创建JavaScript函数的几种方式
  19. ORACLE报错和解决方案
  20. js判断空字符串、null、undefined、空格、中文空格

热门文章

  1. 第5.5次Scrum会议
  2. Docker探索系列2之镜像打包与DockerFile
  3. 最简单的jQuery插件
  4. easyUI-combobox 后台导入Json数据的方法
  5. 使用Newtonsoft JsonConvert反序列化Json数据到DataTable
  6. OpenGL教程
  7. centos忘记开机密码
  8. jexus jws 安装
  9. OC-苹果官方文档
  10. Yii2-Redis使用小记 - Cache(转)