【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 ...
随机推荐
- 你有必要知道的 25 个 JavaScript 面试题
1.使用 typeof bar === "object" 推断 bar 是不是一个对象有神马潜在的弊端?怎样避免这样的弊端? 使用 typeof 的弊端是显而易见的(这样的弊端同使 ...
- 5分钟Serverless实践 | 构建无服务器的敏感词过滤后端系统
前言 在上一篇“5分钟Serverless实践”系列文章中,我们介绍了什么是Serverless,以及如何构建一个无服务器的图片鉴黄Web应用,本文将延续这个话题,以敏感词过滤为例,介绍如何构建一个无 ...
- hdu 1248 寒冰王座(暴力)
寒冰王座 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- LeetCode总结--二分查找篇
二分查找算法尽管简单,但面试中也比較常见.经经常使用来在有序的数列查找某个特定的位置.在LeetCode用到此算法的主要题目有: Search Insert Position Search for a ...
- Combining an audio file with video file in python
Combining an audio file with video file in python - Stack Overflow https://stackoverflow.com/questio ...
- FourCC
https://en.wikipedia.org/wiki/FourCC A FourCC (literally, four-character code) is a sequence of four ...
- Codeforces--633D--Fibonacci-ish (map+去重)(twice)
Fibonacci-ish Time Limit: 3000MS Memory Limit: 524288KB 64bit IO Format: %I64d & %I64u Su ...
- PCB genesis SET取中心点--算法实现
最新ICS工厂有一项incam脚本新需求,这里介绍5种解决方法解决 需求如下图所示:绿色所圈处是是需求出的中心点(图形间距一致归为一类并计算中心点坐标) 前题条件:1.一个SET里面可能有多个CAM, ...
- Netty(2) - HelloWorld
Netty:作用场景. 1)Netty可以基于socket实现远程过程调用(RPC). 2)Netty可以基于WebSocket实现长连接. 3)Netty可以实现Http的服务器,类似于Jetty, ...
- vagrant使用centos的环境安装..
vagrant这货挺好用的..简要就是, 下好virtualbox, vagrant, 然后下个你需要的box. 然后vagrant box add boxname boxpath就行. 然后在合适的 ...