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 ...
随机推荐
- Android M 特性 Doze and App Standby模式详解
版权声明:本文由郑桂涛原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/185 来源:腾云阁 https://www.qclo ...
- examine self thrice a day2016
----------------------------2016----------------------- 12.31.2016 2016年,感恩一路帮助过我的所有人! 每个人来到世 ...
- Timer与TimerTask的真正原理&使用介绍
转载: Timer与TimerTask的真正原理&使用介绍 其实就Timer来讲就是一个调度器,而TimerTask呢只是一个实现了run方法的一个类,而具体的TimerTask需要由你自己来 ...
- 【Problem solved】 error C2665: “loadimage”: 2 个重载中没有一个可以转换所有参数类型
选择“项目”菜单->项目属性->配置属性->常规->字符集,改为“未设置”即可.
- 从zepto中学习方法
前言,今天开始学习Zepto源码,这里仅仅几下里面能用到的方法..陆续补充ing... 一,判断类型函数 function type(obj) { return obj == null ? Strin ...
- python 练习 14
方法一 #!/usr/bin/python # -*- coding: UTF-8 -*- def fib(n): a,b = 1,1 for i in range(n-1): a,b = b,a+b ...
- python 练习 4
#!/usr/bin/python # -*- coding: utf-8 -*- from math import sqrt import random def daoxu(n): d=n s=0 ...
- java 三大框架 介绍
三大框架:Struts+Hibernate+Spring Java三大框架主要用来做WEN应用. Struts主要负责表示层的显示 Spring利用它的IOC和AOP来处理控制业务(负责对数据库的操作 ...
- JDE隐藏Constant等(Hide Object)
Grid中隐藏列,列值可以使用属性配置,但是列表头Constant需要用函数修改,如下所示:
- noip知识点总结之--欧几里得算法和扩展欧几里得算法
一.欧几里得算法 名字非常高大上的不一定难,比如欧几里得算法...其实就是求两个正整数a, b的最大公约数(即gcd),亦称辗转相除法 需要先知道一个定理: gcd(a, b) = gcd(b, a ...