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目录下,再重启。

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

Redis学习笔记之ABC的更多相关文章

  1. Redis学习笔记一:数据结构与对象

    1. String(SDS) Redis使用自定义的一种字符串结构SDS来作为字符串的表示. 127.0.0.1:6379> set name liushijie OK 在如上操作中,name( ...

  2. redis 学习笔记(6)-cluster集群搭建

    上次写redis的学习笔记还是2014年,一转眼已经快2年过去了,在段时间里,redis最大的变化之一就是cluster功能的正式发布,以前要搞redis集群,得借助一致性hash来自己搞shardi ...

  3. Redis学习笔记~目录

    回到占占推荐博客索引 百度百科 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合). ...

  4. Redis学习笔记4-Redis配置详解

    在Redis中直接启动redis-server服务时, 采用的是默认的配置文件.采用redis-server   xxx.conf 这样的方式可以按照指定的配置文件来运行Redis服务.按照本Redi ...

  5. Redis学习笔记7--Redis管道(pipeline)

    redis是一个cs模式的tcp server,使用和http类似的请求响应协议.一个client可以通过一个socket连接发起多个请求命令.每个请求命令发出后client通常会阻塞并等待redis ...

  6. (转)redis 学习笔记(1)-编译、启动、停止

    redis 学习笔记(1)-编译.启动.停止   一.下载.编译 redis是以源码方式发行的,先下载源码,然后在linux下编译 1.1 http://www.redis.io/download 先 ...

  7. Redis学习笔记(二)-key相关命令【转载】

    转自 Redis学习笔记(二)-key相关命令 - 点解 - 博客园http://www.cnblogs.com/leny/p/5638764.html Redis支持的各种数据类型包括string, ...

  8. Redis学习笔记(三)Redis支持的5种数据类型的总结

    继续Redis学习笔记(二)来说说剩余的三种数据类型. 三.列表类型(List) 1.介绍 列表类型可以存储一个有序的字符串列表,常用的操作是向列表两端添加元素,或者获得列表的一段片段.列表类型内部是 ...

  9. Redis学习笔记(二)Redis支持的5种数据类型的总结之String和Hash

    引言 在Redis学习笔记(一)中我们已经会安装并且简单使用Redis了,接下来我们一起来学习下Redis支持的5大数据类型. 简介 Redis是REmote DIctionary Server(远程 ...

随机推荐

  1. zabbix监控模式、分布式、自动化

    适用场景: 1.监控主机多,性能瓶颈 2.多机房,防火墙 zabbix监控模式 针对agent来说 - 被动模式 - 主动模式(主动汇报服务端) 1)当监控主机超过300台,建议使用主动模式 2)当队 ...

  2. android studio中ListView与SQLite的结合使用

    Da.java public class Db extends SQLiteOpenHelper { public Db(Context context) { super(context, " ...

  3. web页面的加载顺序

    1.页面顺序 一个典型的web页面由于三个部分组成:html.css和JS.执行的顺序是: 在构造完HTML的dom结构时.触发DOMContentLoaded事件. 整个执行过程安装html的顺序来 ...

  4. SSAO相关资料

    http://www.gamedev.net/page/resources/_/technical/graphics-programming-and-theory/a-simple-and-pract ...

  5. sublime中安装css 格式化插件

    HTML-CSS-JS Prettify解决问题 今天发现此插件依赖于nodejs,如果本机没有安装nodejs,会一直提示你安装,解决方法很简单,直接brew install nodejs即可 看看 ...

  6. ecshop程序结构说明

    文件夹说明 名称 备注(作用或意义) 根目录 前台程序文件 admin 后台程序文件 admin/help 功能的帮助文件 admin/images 后台页面用图片 admin/includes 后台 ...

  7. thinkphp查询

    public function index(){ $result = M('content')->select() $this->assig('result',$result); $thi ...

  8. 创建menu文件

    一.问题: android studio项目中没有看到menu文件夹: 在android studio项目中想要添加menu布局文件,一开始我的做法是:直接在res文件夹右键选择xml文件来添加,如下 ...

  9. redis入侵小结

    redis安装: windows安装包:http://pan.baidu.com/s/1i3jLlC5 下载下来之后,开始安装: redis-server.exe redis.conf: 简单一步,安 ...

  10. yii2 小技巧

    参考地址:http://www.cnblogs.com/sandea/p/5714830.html 1.不通过日志获取AR执行的原生SQL语句和打印变量数据 $query = User::find() ...