redis笔记总结之redis介绍
一、Redis介绍:
redis的发展历史简单的理解为因为使用类似MySql这类关系型数据库不方便进而开发的开源的、轻量级的、非关系型的,直到现在一直不断完善的一款NoSql数据库。具体的介绍大家可以上网搜一下,这里就不做介绍了。
1、特性:
1.1存储结构
redis以字典结构存储数据,通俗的讲是以key=value(键值对)的形式存储的,并允许其他应用通过TCP协议读取字典中的内容。
目前redis支持的数据类型有:字符串类型(string);散列类型(hash);列表类型(list);集合类型(set);有序集合类型(zset)。
这种存储结构的优势:
在关系型数据库中,不同的数据需要放在不同的表中,有特定需要的话需要进行多表连查。而对于redis这样以键值的形式存储的数据而言,可以对键进行差集、交集、并集的操作,方便很多。
1.2内存存储与持久化
redis数据库中所有的数据都存在内存中。由于内存的读写速度远快于硬盘,因此,redis在性能上远超于那些读取到磁盘上的数据库,在一台普通的笔记本电脑上,redis可以在一秒内读写超过十万个键值。
将数据存储到内存中也是有隐患的,例如程序突然退出后内存中的数据就没了。不过,redis提供了持久化的支持,通过RDB方式或者AOF方式将内存数据持久化到磁盘上,两种方式后面总结。
1.3功能丰富
redis虽然是作数据库开发的,但是很多用做缓存和队列使用的。
redis中可以设置键的生存时间,生存时间到期后就会自动删除。这一功能可以作为缓存来使用。redis是单线程模式,而memcached支持多线程,在多核服务器上memcached性能更高。作为缓存系统,redis还可以限定数据占用的空间大小,超出空间限制后按照一定的规则删除不必要的键。
除此之外,redis的列表类型键可以用来实现队列,可以支持阻塞式读取,可以很容易实现一个高性能的优先级队列。更高层次上,redis还支持“订阅/发布”的消息模式,可以基于此来构建聊天室等系统。
1.4简单稳定
再强大的功能使用起来很复杂同样不会很吸引人,然而redis使用起来也相当的方便简单。
例如:在常规的关系型数据库中想要获取user表的usercode为3的username字段数据时使用SQL语句:select username from user where usercode = 3;
然而在redis中是以键值对的形式存储的,我们只需要按键取值即可:HGET user:3 username
注:此笔记仅根据本人理解所写,如有错误之处,还请留言指正,谢谢。
redis笔记总结之redis介绍的更多相关文章
- redis笔记总结之redis数据类型及常用命令
三.常用命令 3.1 字符串类型(string) 字符串类型是Redis中最基本的数据类型,一个字符串类型的键允许存储的数据的最大容量为512MB. 3.1.1 赋值与取值: SET key valu ...
- redis笔记总结之redis安装
二.Redis安装 2.1 Redis下载 官网地址:http://redis.io/ 下载地址:http://download.redis.io/releases/redis-3.0.0.tar.g ...
- python学习笔记(十一)redis的介绍及安装
一.redis简介 1.redis是一个开源的.使用C语言编写的.支持网络交互的.可基于内存也可持久化的Key-Value数据库. 2.redis的官网地址,非常好记,是redis.io. ...
- 【Redis笔记(四)】 Redis数据结构 - list链表
原创作品,转载请标明:http://blog.csdn.net/Xiejingfa/article/details/50573605 经过前面的介绍,我们学习了Redis中string字符串.hash ...
- redis笔记补充
redis补充 这篇文章是redis入门笔记的补充. 1.info命令 用来显示服务的信息. info命令可以跟下面的选项: server: 关于 Redis 服务器的一些信息 clients: 客户 ...
- Redis 笔记 01:入门篇
Redis 笔记 01:入门篇 ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ...
- 17.Python笔记之memcached&redis
作者:刘耀 博客:www.liuyao.me 博客园:www.cnblogs.com/liu-yao 一.Memcached 1.介绍 Memcached 是一个高性能的分布式内存对象缓存系统,用于动 ...
- Redis 笔记与总结6 Redis 高级应用之 事务处理、持久化操作、pub_sub、虚拟内存
3.事务处理 redis 对事务的支持目前还比较简单. redis 只能保证一个 client 发起的事务中的命令可以连续的执行,而中间不会插入其他 client 的命令. 由于 redis 是单线 ...
- Redis 学习笔记4: Redis 3.2.1 集群搭建
在CenOS 6.7 linux环境下搭建Redis 集群环境 1.下载最新的Redis版本 本人下载的Redis版本是3.2.1版本,下载之后,解压,编译(make): 具体操作可以参考我的博文:R ...
随机推荐
- InputStream中通过mark和reset方法重复利用缓存
通过缓存InputStream可重复利用一个InputStream,但是要缓存一整个InputStream内存压力可能是比较大的.如果第一次读取InputStream是用来判断文件流类型,文件编码等用 ...
- EntityFramework Core 2.0自定义标量函数两种方式
前言 上一节我们讲完原始查询如何防止SQL注入问题同时并提供了几种方式.本节我们继续来讲讲EF Core 2.0中的新特性自定义标量函数. 自定义标量函数两种方式 在EF Core 2.0中我们可以将 ...
- C#将制定文件夹下的PDF文件合并成一个并输出至指定路径
/// <summary> /// 将源路径下的PDF合并至目标路径下 /// </summary> /// <param name="SourcePath&q ...
- Yii2 Ajax Post 实例及常见错误修正
先贴下我的代码: signup.js$('.reg_verify_pic').click(function(){ var csrfToken = $('meta[name="_csrf-To ...
- HDU - 1495 bfs [kuangbin带你飞]专题一
模拟倒水的过程,每次可以把第i个杯子的水向第j个杯子里面倒,这可能出现新的状态,不停的更新状态,指导某两个杯子的水等于S/2说明找到答案,如果所有状态搜索完毕仍然不能均分,则退出. 注意:如果S是奇数 ...
- 对于JAVA程序优化的一些想法,读书有感.治疗强迫症良药
在深入了解Java虚拟机里读到:在try{}块里面执行代码,比if(x!=null)效率要高,前提是被catch的几率很低的情况下. 但是 在Effective Java里读到:因为异常机制的设计初衷 ...
- 科学计算工具-Numpy初探
Numpy基础数据结构 Numpy数组是一个多维数组,称为ndarray.其由两部分组成: 实际的数据 描述这些数据的原数据 导入该库: import numpy as np 多维数组ndarray ...
- android自定义View的绘制原理
每天我们都会使用很多的应用程序,尽管他们有不同的约定,但大多数应用的设计是非常相似的.这就是为什么许多客户要求使用一些其他应用程序没有的设计,使得应用程序显得独特和不同. 如果功能布局要求非常定制化, ...
- 搜索引擎case︱从搜索序列文本看高端商务车︱统计之都
朱雪宁(北京大学光华管理学院) 王汉生(北京大学光华管理学院) 摘要:本文对100万搜索引擎用户的13亿搜索序列文本进行探索分析,对高端车用户以及商学院人群做了描述对比,并 ...
- free 或delete后指针怎么样了
free()和delete()只是把指针所指向的内存释放掉,但是并没有把指针本身删除,也没有把指针置为NULL; #include<iostream> using namespace st ...