【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 ...
随机推荐
- A new Graph Game
点击打开链接 题意:给你一张N个节点的无向图.然后给出M条边,给出第 I 条边到第J条边的距离.然后问你是否存在子环,假设存在,则输出最成环的最短距离和 解析:构图:选定源点及汇点,然后将源点至个点流 ...
- Ubuntu中取消秘钥环
1.打开应用程序->附件->password和加密密钥(或者在终端中输入 seahorse) 2.切换到password选项卡,会看到一个password密钥环 3.右击->更改pa ...
- 嵌入式C语言经常使用keyword
1.statickeyword 这个keyword前面也有提到.它的作用是强大的. 要对statickeyword深入了解.首先须要掌握标准C程序的组成. 标准C程序一直由下列部分组成: ...
- idea2016的使用心得 --- 太棒了
今天打开myeclipse感觉里面全是project,也懒着换地方了,因为这些代码还要时常看,索性安装了idea试试水,感觉还不错,用起来并不比myeclipse差,跟webstorm差不多,他俩就是 ...
- jQuery 自定义动画效果
<!DOCTYPE html> <html> <head> <script src="/jquery/jquery-1.11.1.min.js&qu ...
- 水晶报表的宽度调整方法(设计器、代码调整、rpt文件属性)
水晶报表的宽度调整方法(设计器.代码调整.rpt文件属性) Posted on 2010-08-07 23:52 moss_tan_jun 阅读(1725) 评论(0) 编辑 收藏 经过个人反复研究后 ...
- 数组和字符串长度length
数组.length 字符串.length() list list.size();map map.size();set set.size();1 java中的length属性是针对数组说的,比如说你声明 ...
- Grunt环境搭建及使用
jQuery在使用grunt,bootstrap在使用grunt,百度UEditor在使用grunt,你没有理由不学.不用! 1. 前言 各位web前端开发人员,如果你现在还不知道grunt或者听说过 ...
- oracle更新大量数据太慢,可以通过游标实现的例子
declare cursor city_cur isselect t.new_customer_id,t.old_customer_id from citsonline.crm_customer_tm ...
- 【转载】深入理解Linux文件系统
1.rm-rf删除目录里的文件后,为什么可以恢复? 首先创建一个空目录test,目录的blocksize为4096字节 为了空目录还是4096?首先,目录的大小取决它所包含的文件的inode(访问 ...