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. Linux nginx 配置 location 语法 正则表达式

    location语法:location [=|~|~*|^~] /uri/ { - }默认:否上下文:server这个指令随URL不同而接受不同的结构.你可以配置使用常规字符串和正则表达式.如果使用正 ...

  2. HTML5系列四(特征检测、Modernizr.js的相关介绍)

    Modernizr:一个HTML5特征检测库 Modernizr帮助我们检测浏览器是否实现了某个特征,如果实现了那么开发人员就可以充分利用这个特征做一些工作 Modernizr是自动运行的,无须调用诸 ...

  3. HDU5672String(尺标法)

    问题描述 有一个 10\leq10≤长度\leq 1,000,000≤1,000,000 的字符串,仅由小写字母构成.求有多少个子串,包含有至少k(1 \leq k \leq 26)k(1≤k≤26) ...

  4. Install latest R for ubuntu

    ### delete old version rm -rf /usr/local/lib/R /usr/lib/R ~/**/R sudo apt-get autoremove rstudio sud ...

  5. 深入JVM-java虚拟机的基本结构

    本文将介绍Java虚拟机的基本结构,各组成部分的作用,以及相互之间是如何协调的.而要了解这些,首先必须了解Java堆.Java栈.永久区和元数据区的基本概念. 一.Java虚拟机的架构 1.1 类加载 ...

  6. 获取List集合中最大值的方法

    public static void main(String args[])      {        //Double[] num = { 45.1,45.2 };              Li ...

  7. Laravel教程 七:表单验证 Validation

    Laravel教程 七:表单验证 Validation 此文章为原创文章,未经同意,禁止转载. Laravel Form 终于要更新这个Laravel系列教程的第七篇了,期间去写了一点其他的东西. 就 ...

  8. MYSQL数据库的常用数据类型

    列类型 说明 tinyint/smallint/mediumint int(integer)/bigint 1字节.2字节.3字节.4字节.8字节整数,又可分有符号和无符号两种.这些整数类型的区别仅仅 ...

  9. centos 网络配置

    centos 网络配置网络配置 -bash-4.1# setup    #如果没有setup命令,可以yum install setuptool -y  也可以安装setup 命令 http://ji ...

  10. iOS-马上着手开发iOS应用应用程序-第一部分介绍

    教程:基础 main 中的 main.m 函数会调用自动释放池 (autorelease pool) 中的 UIApplicationMain 函数. @autoreleasepool { retur ...