Redis学习笔记之ABC
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目录下,再重启。
部分内容来自网络整理,如果有遗漏,表述不准的地方,请不吝指正!
Redis学习笔记之ABC的更多相关文章
- Redis学习笔记一:数据结构与对象
1. String(SDS) Redis使用自定义的一种字符串结构SDS来作为字符串的表示. 127.0.0.1:6379> set name liushijie OK 在如上操作中,name( ...
- redis 学习笔记(6)-cluster集群搭建
上次写redis的学习笔记还是2014年,一转眼已经快2年过去了,在段时间里,redis最大的变化之一就是cluster功能的正式发布,以前要搞redis集群,得借助一致性hash来自己搞shardi ...
- Redis学习笔记~目录
回到占占推荐博客索引 百度百科 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合). ...
- Redis学习笔记4-Redis配置详解
在Redis中直接启动redis-server服务时, 采用的是默认的配置文件.采用redis-server xxx.conf 这样的方式可以按照指定的配置文件来运行Redis服务.按照本Redi ...
- Redis学习笔记7--Redis管道(pipeline)
redis是一个cs模式的tcp server,使用和http类似的请求响应协议.一个client可以通过一个socket连接发起多个请求命令.每个请求命令发出后client通常会阻塞并等待redis ...
- (转)redis 学习笔记(1)-编译、启动、停止
redis 学习笔记(1)-编译.启动.停止 一.下载.编译 redis是以源码方式发行的,先下载源码,然后在linux下编译 1.1 http://www.redis.io/download 先 ...
- Redis学习笔记(二)-key相关命令【转载】
转自 Redis学习笔记(二)-key相关命令 - 点解 - 博客园http://www.cnblogs.com/leny/p/5638764.html Redis支持的各种数据类型包括string, ...
- Redis学习笔记(三)Redis支持的5种数据类型的总结
继续Redis学习笔记(二)来说说剩余的三种数据类型. 三.列表类型(List) 1.介绍 列表类型可以存储一个有序的字符串列表,常用的操作是向列表两端添加元素,或者获得列表的一段片段.列表类型内部是 ...
- Redis学习笔记(二)Redis支持的5种数据类型的总结之String和Hash
引言 在Redis学习笔记(一)中我们已经会安装并且简单使用Redis了,接下来我们一起来学习下Redis支持的5大数据类型. 简介 Redis是REmote DIctionary Server(远程 ...
随机推荐
- Linux nginx 配置 location 语法 正则表达式
location语法:location [=|~|~*|^~] /uri/ { - }默认:否上下文:server这个指令随URL不同而接受不同的结构.你可以配置使用常规字符串和正则表达式.如果使用正 ...
- HTML5系列四(特征检测、Modernizr.js的相关介绍)
Modernizr:一个HTML5特征检测库 Modernizr帮助我们检测浏览器是否实现了某个特征,如果实现了那么开发人员就可以充分利用这个特征做一些工作 Modernizr是自动运行的,无须调用诸 ...
- HDU5672String(尺标法)
问题描述 有一个 10\leq10≤长度\leq 1,000,000≤1,000,000 的字符串,仅由小写字母构成.求有多少个子串,包含有至少k(1 \leq k \leq 26)k(1≤k≤26) ...
- Install latest R for ubuntu
### delete old version rm -rf /usr/local/lib/R /usr/lib/R ~/**/R sudo apt-get autoremove rstudio sud ...
- 深入JVM-java虚拟机的基本结构
本文将介绍Java虚拟机的基本结构,各组成部分的作用,以及相互之间是如何协调的.而要了解这些,首先必须了解Java堆.Java栈.永久区和元数据区的基本概念. 一.Java虚拟机的架构 1.1 类加载 ...
- 获取List集合中最大值的方法
public static void main(String args[]) { //Double[] num = { 45.1,45.2 }; Li ...
- Laravel教程 七:表单验证 Validation
Laravel教程 七:表单验证 Validation 此文章为原创文章,未经同意,禁止转载. Laravel Form 终于要更新这个Laravel系列教程的第七篇了,期间去写了一点其他的东西. 就 ...
- MYSQL数据库的常用数据类型
列类型 说明 tinyint/smallint/mediumint int(integer)/bigint 1字节.2字节.3字节.4字节.8字节整数,又可分有符号和无符号两种.这些整数类型的区别仅仅 ...
- centos 网络配置
centos 网络配置网络配置 -bash-4.1# setup #如果没有setup命令,可以yum install setuptool -y 也可以安装setup 命令 http://ji ...
- iOS-马上着手开发iOS应用应用程序-第一部分介绍
教程:基础 main 中的 main.m 函数会调用自动释放池 (autorelease pool) 中的 UIApplicationMain 函数. @autoreleasepool { retur ...