redis——基础介绍
转自:http://www.cnblogs.com/xing901022/p/4863929.html
1 什么是Redis
Redis(REmote DIctionary Server,远程数据字典服务器)是开源的内存数据库,常用作缓存或者消息队列。
Redis的特点:
Redis存在于内存,使用硬盘作为持久化;每秒十万读写。
具有丰富的数据结构,字符串、哈希表、列表、集合、有序集合;提供交集、并集、差集等操作。
设置TTL存活时间,到期自动删除。
Redis单线程、Memcached多线程;对于一般的应用场景,单线程也足够使用,优势还是在于多数据类型、持久化。
可以将数据复制到任意数量的从服务器。
2 Redis中的数据结构
字符串
SET keyname value 设置键值keyname的值是value
KEYS * 获取所有的键值
GET keyname 获取keyname的值
EXISTS keyname 判断是否存在键值keyname
DEL keyname 删除键值keyname
TYPE keyname 判断keyname的类型(string字符串,hash哈希表,list列表,set集合,zset有序集合)
哈希表
HSET keyname key value 添加一个哈希属性和值
HGET keyname key 获取值
HKEYS keyname 获取全部的key值
HVALS keyname 获取全部的value值
HGETALL keyname 获取所有的值
列表
通过双向链表实现,头尾操作均为O(1),获取指定元素比较慢。
LPUSH keyname value1或者LPUSH keyname value1 value2 在左边插入
RPUSH keyname value2 在右边插入
LRANGE keyname 0 -1 查询所有的元素
LPOP keyname
RPOP keyname
集合
元素唯一,但是没有顺序。使用值为空的哈希表实现,操作都是O(1)。
SADD keyname value1 value2 添加值
SREM keyname value1 删除
SMEMBERS keyname查询所有元素
有序集合
使用哈希和跳跃表实现,中间速度也很快。
ZADD keyname key value 添加
ZRANGE keyname start end 获取指定范围的元素
与列表的比较:
相同:
都是有序的
都可以获取某一范围的元素
不同:
列表通过双向链表实现,两端数据存取极快,中间缓慢
有序集合通过哈希和跳跃表实现,中间速度也很快,为O(log(N))
列表不能简单地调整某个元素的位置,有序集合可以
有序集合比列表更好费内存
3 Redis持久化
Redis提供了两种持久化方式:1 RDB快照方式 2 AOF方式
RDB方式:
满足一定条件时,会创建一个子进程,复制当前的数据,把数据写入到硬盘中某个文件,写入完成后替换原来的存储文件。数据一般存储在dump.rdb中。UNIX系统中支持写时复制,即刚开始会执行持久化写入磁盘的操作,如果此时有其他的数据发生改变,就复制一份数据执行。
除了这种自动的快照方式,还支持命令方式持久化:
SAVE:通过阻塞的方式,用父进程来持久化,此时无法执行其他的请求。
BGSAVE:通过fork子进程的方式,持久化。
AOF方式:
每次操作都会记录命令,这样会造成某些命令的冗余,比如添加了一个属性,再删除,那么这两个操作都是冗余的。redis提供了一些优化,所以可以避免这些冗余信息。命令记录在appendonly.aof中
4 Redis的消息队列
Redis用于消息队列,通常有两种种使用方式:
LIST:基于列表的方式,所有的消费者数据加起来是列表中的所有数据.

发布/订阅:每个消费者订阅独立的channel,每个数据都是独立的。

redis——基础介绍的更多相关文章
- Redis基础介绍及安装示例
1.基本概念 Redis是由Salvatore Sanfilippo(意大利)开发的一个开源的高性能键值存储数据库,于2009年发布第一个版本并与同一年开源,官方站点:http://www.redis ...
- Redis基础知识补充及持久化、备份介绍(二)--技术流ken
Redis知识补充 在上一篇博客<Redis基础认识及常用命令使用(一)--技术流ken>中已经介绍了redis的一些基础知识,以及常用命令的使用,本篇博客将补充一些基础知识以及redis ...
- Redis基础知识补充及持久化、备份介绍
Redis知识补充 在上一篇博客<Redis基础认识及常用命令使用(一)–技术流ken>中已经介绍了redis的一些基础知识,以及常用命令的使用,本篇博客将补充一些基础知识以及redis持 ...
- Redis安装介绍
Redis安装介绍 一.Linux版本及配置 1. Linux版本:Red Hat Enterprise Linux 6虚拟机 2. 配置: 内存:1G:CPU:1核:硬盘:20G 二.Redis ...
- [.net 面向对象程序设计深入](14)Redis——基础
[.net 面向对象程序设计深入](14)Redis——基础 很长一段时间没更新博客了,坚持做一件事,真不是件容易的事,后面我会继续尽可能的花时间更新完这个系列文章. 因这个系列的文章涉及的范围太大了 ...
- Redis全面介绍
最近重新认识了一下Redis,借着这个机会,也整理一篇算是比较详尽和全面的文章吧. 缓存 缓存就是数据交换的缓冲区(称作Cache)——摘自百度百科.无论是在计算机硬件体系结构还是软件体系结构中, ...
- [.net 面向对象程序设计深入](36)Redis——基础
[.net 面向对象程序设计深入](36)Redis——基础 很长一段时间没更新博客了,坚持做一件事,真不是件容易的事,后面我会继续尽可能的花时间更新完这个系列文章. 因这个系列的文章涉及的范围太大了 ...
- 4 Redis 配置文件介绍
2016-12-22 14:28:39 该系列文章链接NoSQL 数据库简介Redis的安装及及一些杂项基础知识Redis 的常用五大数据类型(key,string,hash,list,set,zse ...
- Redis基础用法、高级特性与性能调优以及缓存穿透等分析
一.Redis介绍 Redis是一个开源的,基于内存的结构化数据存储媒介,可以作为数据库.缓存服务或消息服务使用.Redis支持多种数据结构,包括字符串.哈希表.链表.集合.有序集合.位图.Hype ...
随机推荐
- 《云中歌》孟石头泡妞大法独家放送,单身汪get起来!!
谁说古代文人雅士只会诗词歌赋.琴棋书画?作为“玉中之王”的公子哥——孟石头泡妞可是个中高手,总结起来都能出一本“泡妞宝典”了,单身的乃们还不赶紧学起来! 第一步:假装自来熟相识,马上开启约会模式 看到 ...
- java 模板
模板模式: 解决某类事情的步骤有些是固定的,有些是会发生变化的,这时我们提供 一个模板代码,从而提高效率. 模板模式的作用: 1.解决这类事情其中一件的解决方案. 2.分析代码,把发生变化的代码抽象取 ...
- location.pathname;outline:medium;undefined不能加引号
1. location.pathname -- 返回URL的域名后的部分.例如 http://www.dreamdu.com/xhtml/ 返回/xhtml/ 2. 判断某个名称为undefined时 ...
- 打通B/S与C/S !让HTML5 WebSocket与.NET Socket公用同一个服务端!
随着HTML5 WebSocket技术的日益成熟与普及,我们可以借助WebSocket来更加方便地打通BS与CS -- 因为B/S中的WebSocket可以直接连接到C/S的服务端,并进行双向通信.如 ...
- html5重定义标签
1.details: 可以同details与figure一同使用,定义包含文本 <details> <dd>无限互联1</dd><dd>无限互联1< ...
- [JS] 限制上传文件的类型和大小
<!DOCTYPE html> <!-- saved from url=(0035)http://localhost:9090/qraved/update --> <ht ...
- Java GC系列(4):垃圾回收监视和分析
本文由 ImportNew - lomoxy 翻译自 javapapers. 目录 垃圾回收介绍 垃圾回收是如何工作的? 垃圾回收的类别 垃圾回收监视和分析 在这个Java GC系列教程中,让我们学习 ...
- MVC之URL路由
注册路由规则集合 一个 Web 应用具有一个全局的路由表,该路由表通过 System. Web.Routing.RouteTable的静态只读属性 Routes 表示,该属性返回一个类型为 Syste ...
- Java 多线程——基础知识
java 多线程 目录: Java 多线程——基础知识 Java 多线程 —— synchronized关键字 java 多线程——一个定时调度的例子 java 多线程——quartz 定时调度的例子 ...
- 未能加载文件或程序集“System.Data.SQLite”或它的某一个依赖项。解决办法
找到使用中的程序池,右键,设置应用程序默认设置,如下 确定即可.