Redis初级介绍
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系统性介绍
Redis系统性介绍 http://blog.nosqlfan.com/html/3139.html?ref=rediszt 虽然Redis已经很火了,相信还是有很多同学对Redis只是有所听闻或者了 ...
- Redis安装介绍
Redis安装介绍 一.Linux版本及配置 1. Linux版本:Red Hat Enterprise Linux 6虚拟机 2. 配置: 内存:1G:CPU:1核:硬盘:20G 二.Redis ...
- Redis全面介绍
最近重新认识了一下Redis,借着这个机会,也整理一篇算是比较详尽和全面的文章吧. 缓存 缓存就是数据交换的缓冲区(称作Cache)——摘自百度百科.无论是在计算机硬件体系结构还是软件体系结构中, ...
- NoSQL数据库之Redis数据库:Redis的介绍与安装部署
NoSQL(NoSQL = Not Only SQL),它指的是非关系型的数据库.随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的w ...
- 4 Redis 配置文件介绍
2016-12-22 14:28:39 该系列文章链接NoSQL 数据库简介Redis的安装及及一些杂项基础知识Redis 的常用五大数据类型(key,string,hash,list,set,zse ...
- 第五章· Redis主从复制介绍
一.Redis主从复制 二.Redis主从复制工作机制 一.Redis主从复制 Redis复制功能简单介绍 1)使用异步复制.2)一个主服务器可以有多个从服务器.3)从服务器也可以有自己的从服务器.4 ...
- redis cluster介绍
讲解分布式数据存储的核心算法,数据分布的算法 hash算法 -> 一致性hash算法(memcached) -> redis cluster,hash slot算法 一.概述 1.我们的m ...
- Python 基于python操纵redis入门介绍
基于python操纵redis入门介绍 by:授客 QQ:1033553122 测试环境 redis-3.0.7 CentOS 6.5-x86_64 python 3.3.2 基于Python操作R ...
- Python redis 简单介绍
Python redis 简单介绍 1.安装 终端输入: pip(or)pip3.6 install redis 安装成功 2.哈哈,发现我并没有redis服务可以访问,所以到这里,在本机安装了red ...
随机推荐
- iOS how to stop a scrolling scrollView
- (void)killScroll { CGPoint offset = scrollView.contentOffset; offset.y -= 1.0; [scrollView setCont ...
- iOS 传值方式
1.代理传值 2.AppDelegate传值 3.block传值 4.通知传值 5.NSUserDefault传值
- my97DatePicker日期控件——日期输入框联动,使用focus使第二个输入框没展示出日期控件
描述问题场景: 1.jquery使用的版本是jquery-1.7.2.min.js 2.代码不是写在页面上的,是通过事件后追加的 <!DOCTYPE html> <html> ...
- 【枚举】POJ 3279
直达–>POJ 3279 Fliptile 题意:poj的奶牛又开始作孽了,这回他一跺脚就会让上下左右的砖块翻转(1->0 || 0->1),问你最少踩哪些砖块才能让初始的砖块全部变 ...
- PO,VO,BO,DTO,POJO(POCO),DAO的区别(转载)
PO:persistant object持久对象 最形象的理解就是一个PO就是数据库中的一条记录.好处是可以把一条记录作为一个对象处理,可以方便的转为其它对象. BO:business object业 ...
- Total Commander解压位置
TC解压到当前文件夹下 TC也是用了一段时间,现在勉强也算用习惯了,今天在解压文件的时候感觉步骤麻烦,之前解压都是解压到另一个窗口,所以一直是ALT+8同步窗口,然后解压文件.但一般解压文件都是解压到 ...
- eclipse tomcat add and remove工程异常
1 eclipse导入工程后,右击server add and remove工程时,there are no resource: 解决方案:右击工程->单击property->选择pro ...
- HTML5开发手机应用--viewport的作用
在用HTML5开发手机应用或手机网页时,<head>部分总会有如下一段代码,这段代码到底什么意思呢.在网上,大家会得到很多答案.我从网上搜集了部分介绍,整理一下,以留备用. <met ...
- 查看sbt版本
进入 sbt 命令行模式, 键入sbtVersion 得到[info]0.13.12
- toroiseSVN 无法连接服务器,提示unable connect to ……url 参数错误
之前使用的好好的,有天突然提示无法连接repository url,能ping通服务器,就是一直报错,找了很多方法,如: 1.删除缓存及缓存文件 2.删除软件并重新安装 3.关闭windows防火墙 ...