【Redis】一、Redis简介及五种数据类型
(一)Redis简介
Redis(Remote Dictionary Server)是一个使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value的开源数据库,并提供多种语言的API。
Redis是一个key-value的存储系统,它通常也被称为数据结构服务器,因为Redis支持丰富的数据类型,值可以是字符串、哈希、列表、集合和有序集合这五种类型。
Redis可以用作数据库、分布式缓存和消息中间件,它是一个NoSQL数据库。
和其他 key - value 缓存产品(如Memcache)相比,Redis具有以下几个优势:
- 支持数据的持久化。内存中的数据可以保存到磁盘中,重启的时候可以再次加载使用。
- 丰富的数据类型。除了简单的key-value的字符串数据,还提供list,set,zset,hash等数据结构的存储。
- 性能极高。由于数据保存在内存中,redis读的速度是110000次/s,写的速度是81000次/s 。
- 原子操作。Redis的所有操作都是原子性的,就是要么成功执行要么失败完全不执行。
- 支持数据备份。Redis提供基于master-slave模式的数据备份。
- 丰富的特性。除了五种数据类型,Redis还支持发布-订阅(pub-sub)、通知、设置key的过期时间等等。
(二)Redis的五种数据类型
Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。每一种数据类型都有大量的操作命令。
1、字符串(String)
字符串是redis最基本的类型,一个key对应一个value。String类型是二进制安全的,也就是说redis的String可以包含任何数据,比如jpg图片或者序列化的对象。
string 类型的值最大能存储 512MB,是最常规的存储类型,值除了是字符串之外,还可以是数字,一般用于复杂的计数功能。以下的示例展示Redis字符串的基本操作命令。
2、哈希(Hash)
Redis hash 是一个键值(key=>value)对集合,是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。每个 hash 可以存储 2^32 -1个 键值对(40多亿)。
以下的示例展示Redis哈希的基本操作命令。
3、列表(List)
Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。列表最多可存储 2^32 -1个 元素(40多亿)。
使用List的数据结构,可以做简单的消息队列的功能。另外还有一个就是,可以利用lrange命令,做基于redis的分页功能。以下的示例展示Redis列表的基本操作命令。
4、集合(Set)
Redis 的 Set 是 String 类型的无序集合,集合中的成员是唯一的,这就意味着集合中不能出现重复的数据。 Redis 中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。集合中最大的成员数为 2^32 - 1(40多亿个) 。
Set作为一个无序集合,不含重复元素,适合用来做去重的功能,另外还可以计算交集、并集、差集。以下的示例展示Redis集合的基本操作命令。
5、有序集合(zset)
Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。zset的成员是唯一的,但分数(score)却可以重复。
由于zset根据分数进行排序,因此,一些类似于排行榜的应用就很适合用它来存储。以下的示例展示Redis有序集合的基本操作命令。
我们可以看到,Redis支持的五种数据类型各有优势,都有其适用的场合,归纳为下表:
除了以上针对每一种特定数据类型的操作命令,redis还有一些通用的对key的操作命令,如删除键del key等等,示例如下:
【Redis】一、Redis简介及五种数据类型的更多相关文章
- Redis命令操作简介及五种value数据类型
转自:https://blog.csdn.net/ty4315/article/details/52050721 Redis是使用键值存储数据,key必须是字符串value支持五种数据类型,最新版本又 ...
- Redis五种数据类型应用场景
目录 1.1 回顾 2.1 应用场景 2.1.1 String 2.1.2 Hash 2.1.3 List 2.1.4 Zet 2.1.5 zset 3.1 小结 1.1 回顾 Redis的五种数据类 ...
- redis五种数据类型的使用(zz)
redis五种数据类型的使用 redis五种数据类型的使用 (摘自:http://tech.it168.com/a2011/0818/1234/000001234478_all.shtml ) 1.S ...
- redis五种数据类型的使用
redis五种数据类型的使用 redis五种数据类型的使用 (摘自:http://tech.it168.com/a2011/0818/1234/000001234478_all.shtml ) 1.S ...
- redis五种数据类型的使用场景
string 1.String 常用命令: 除了get.set.incr.decr mget等操作外,Redis还提供了下面一些操作: 获取字符串长度 往字符串append内容 设置和获取字符串的某一 ...
- Redis五种数据类型-设置key的过期时间
1.redis命令客户端 [root@localhost bin]# ./redis-cli 127.0.0.1:6379> #是否运行着 127.0.0.1:6379> ping PON ...
- Redis安装及五种数据类型
redis是非关系型数据库,也叫内存数据库.数据是键值对的形式,通过key查找value 安装Radis:6379 sudo apt-get update sudo apt-get install r ...
- Redis: Redis支持五种数据类型
ylbtech-Redis: Redis支持五种数据类型 Redis支持五种数据类型:string(字符串) ,hash(哈希),list(列表),set(集合)及zset(sorted set:有序 ...
- Redis支持的五种数据类型
redis支持的五种数据类型: 1.string(字符串) 2.hash(哈希) Redis hash 是一个键值(key=>value)对集合. Redis hash是一个string类型的f ...
随机推荐
- 用XMLRPC开服务进行server/client通信
本文讲一下怎样用python的xmlrpc开服务,进行server/client的通信. 应用场景:1)需多client訪问应用程序给予应答情况--网页服务. 2)数据极大,希望载入一次.后面仅仅用 ...
- QSettings读写注冊表、配置文件
简述 普通情况下.我们在开发软件过程中,都会缓存一些信息到本地,能够使用轻量级数据库sqlite.也能够操作注冊表.读写配置文件. 关于QSettings的使用前面已经介绍过了.比較具体,见" ...
- javax.xml.transform.TransformerConfigurationException: Could not compile stylesheet
今天在调代码的时候遇到了一个异常: javax.xml.transform.TransformerConfigurationException: Could not compile styleshee ...
- 【Swift】学习笔记(八)——类和结构体
1.类和结构体的定义 <pre name="code" class="html">struct Resolution { var width = 0 ...
- 【CodeForces】166'E
166’E Tetrahedron You are given a tetrahedron. Let’s mark its vertices with letters A, B, C and D co ...
- 05、ListActivity的使用
第一个好处:处理共同的操作,避免代码重复 假设我要写第二个界面我也是需要使用到mapView,那你都要去查找一个mapView.都要获取一个Map的一个地图. 第二个好处:代码规范(方便阅读,真实开发 ...
- 【已解决】Makefile执行过程中出错:make: *** No rule to make target ` ‘, needed by xxx. Stop(转载)
转自: http://www.crifan.com/makefile_error_make_no_rule_to_make_target_needed_by_stop/ [问题] 有个已有的Makef ...
- PCB 规则引擎之JSON对象查看器
在PCB规则引擎开发中,JavaScript V8引擎是处理业务逻辑的, 当然业务逻辑需要数据支撑才行, 即需有将数据推进入到V8引擎.目前这边数据传输到JavaScript V8引擎以C# Mod ...
- 网站防止用户复制的js方法
<script type="text/javascript">function stop() {return false;}document.oncontextmenu ...
- [Apple开发者帐户帮助]九、参考(6)支持的功能(watchOS)
watchOS扩展可用的功能取决于您的程序成员身份. 注意:对于watchOS应用程序目标,可用的功能是应用程序组和后台模式,并且不依赖于您的程序成员身份. 能力 ADP 企业 Apple开发者 应用 ...