Redis 基础:Redis 数据类型
Redis 数据类型
Redis支持五种数据类型:string(字符串)、hash(哈希)、list(列表)、set(集合)及zset(sorted set:有序集合)。
String(字符串)
string时redis最基本的类型,可以理解为与Memcached一模一样的类型,一个key对应一个value。string类型时二进制安全的,意思是redis的string可以包含任何数据,比如:jpg图片或者序列化的对象。string类型是redis最基本的数据类型,一个key最大能存储512M。
实例
> SET name "Hello"
OK
> GET name
"Hello"
在以上实例中我们使用了Redis的SET和GET命令,键为name,对应的值为"Hello",注意:一个键最大能存储512M。
Redis 字符串命令
SET key value:设置指定key的值;
GET key:获取指定key的值;
GETRANGE key start end:返回key中字符串的字串;
GETSET key value:将给定key的值设置为value,并返回key的旧值(old value);
GETBIT key offset:对key所存储的字符串值,获取指定偏移量上的位(bit);
MGET key1[key2...]:获取所有(一个或多个)给定key的值;
SETBIT key offset value:对key所存储的字符串值,设置或清除指定偏移量上的位(bit);
SETEX key seconds value:将value关联到key,并将key的过期时间设为seconds(以秒为单位);
SETNX key value:只有在key不存在时设置key的值;
SETRANGE key offset value:用value参数覆写给定的key所存储的字符串值,从偏移量offset开始;
STRLEN key:返回key所存储的字符串值的长度;
MSET key value [key value ...]:同时设置一个或多个key-value对;
MSETMX key value [key value ...]:同时设置一个或多个key-value对,当且仅当所有给定key都不存在;
PSETEX key milliseconds value:这个命令和SETEX命令相似,但它以毫秒为单位设置key的生存时间,而不是像SETEX命令那样,以秒为单位;
INCR key:将key中存储的数字值增1;
INCRBY key increment:将key所存储的值加上给定的增量值(increment);
INCRBYFLOAT key increment:将key所存储的值加上给定的浮点增量值(increment);
DECR key:将key中存储的数字值减1;
DECRBY key decrement:key所存储的值减去给定的减量值(decrement);
APPEND key value:如果key已经存在并且是一个字符串,APPEND命令将指定的value追加到该key原来值(value)的末尾;
Hash(哈希)
Redis hash是一个键值对集合。Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。
实例
> HMSET myhash name "redis tutorial" description "redis basic commands for caching" likes 20 visitors 23000
OK
> HGETALL myhash
1) "name"
2) "redis tutorial"
3) "description"
4) "redis basic commands for caching"
5) "likes"
6) "20"
7) "visitors"
8) "23000"
实例中我们使用Redis HMSET设置了redis的一些描述信息(name,description,likes,visitors)到哈希表的myhash中,每个hash可以存储2**32-1键值对(40多亿)。
Redis hash命令
HDEL key field1 [field2 ...]:删除一个或多个哈希表字段;
HEXISTS key field:查看哈希表key中,指定的字段是否存在;
HGET key field:获取存储在哈希表中指定字段的值;
HGETALL key:获取在哈希表中指定key的所有字段和值;
HINCRBY key field increment:为哈希表key中的指定字段的整数值加上增量increment;
HINCRBYFLOAT key field increment:为哈希表key中的指定字段的浮点数值加上增量increment;
HKEYS key:获取所有哈希表中的字段;
HLEN key:获取哈希表中字段的数量;
HMSET key field1 value1 [field2 value2]:同时将多个field-value(字段-值)对设置到哈希表key中;
HSET key field value:将哈希表key中的字段field的值设为value;
HSETNX key field value:只有在字段field不存在时,设置哈希表字段的值;
HVALS key:获取哈希表中所有值;
HSCAN key cursor[MATCH pattern][COUNT count];
List(列表)
Redis列表是简单的字符串列表,按照插入顺序排序。可以添加一个元素到列表的头部(左边)或者尾部(右边)。一个列表最多可以包含2**32-1个元素(每个列表超过40亿个元素)。
实例
> LPUSH mylist redis
(integer) 1
> LPUSH mylist mongodb
(integer) 2
> LPUSH mylist mysql
(integer) 3
> LRANGE mylist 0 10
1) "mysql"
2)"mongodb"
3)"redis"
在以上实例中我们使用了LPUSH将三个值插入了名为mylist的列表中。
Redis 列表命令
BLPOP key1[key2] timeout:移除并获取列表中的第一个元素,如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止;
BRPOP key1[key2] timeout:移除并获取列表中的最后一个元素,如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止;
BRPOPLPUSH source destination timeout:从列表中弹出一个值,将淌出的元素插入到另一个列表中并返回它;如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止;
LINDEX key index:通过索引获取列表中的元素;
LINSERT key BEFORE|AFTER pivot value:在列表的元素前或后插入元素;
LLEN key:获取列表长度;
LPOP key:移除并获取列表的第一个元素;
LPUSH key value1[value2]:将一个或多个值插入到列表头部;
LPUSH key value:将一个值插入到已存在的列表头部;
LRANGE key start stop:获取列表范围内的元素;
LREM key count value:移除列表元素;
LSET key index value:通过索引设置列表元素的值;
LREIM key start stop:对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间内的元素都将被删除;
RPOP key:移除并获取列表最后一个元素;
RPOPLPUSH source destination:移除列表的最后一个元素,并将该元素添加到另一个列表并返回;
RPUSH key value1[value2]:在列表中添加一个或多个值;
RPUSHX key value:为已存在的列表添加值;
Set(集合)
Redis的Set是String类型的无序集合,集合成员是唯一的,这就意味着集合中不能出现重复的数据。Redis中集合是通过哈希表实现的,所以添加、删除、查找的复杂度都是O(1),集合中最多可以包含2**32-1个元素(每个列表超过40亿个元素)。
实例
> SADD myset redis
(integer) 1
> SADD myset mongodb
(integer) 1
> SADD myset mysql
(integer) 1
> SADD myset mysql
(integer) 0
> SMEMBERS myset
1) "mysql"
2) "mongodb"
3) "redis"
在以上实例中我们通过SADD命令向名为myset的集合插入三个元素。
Redis 集合命令
SADD key member1[member2]:向集合添加一个或多个成员;
SCADD key:获取集合的成员数;
SDIFF key1[key2]:返回给定所有集合的差集;
SDIFFSTORE destination key1[key2]:返回给定所有集合的差集并存储在destination中;
SINTER key1[key2]:返回给定所有集合的交集;
SINTERSTORE destination key1[key2]:返回给定所有集合的交集并存储在destination中;
SISMEMBER key member:判断member元素是否是集合key的成员;
SMEMBERS key:返回集合中所有成员;
SMOVE source destination member:将member元素从source集合移动到destination集合;
SPOP key:移除并返回集合中的有个随机元素;
SRANDMEMBER key [count]:返回集合中一个或多个成员;
SUNION key1[key2]:返回所有给定集合的并集;
SUNIONSTORE destination key1[key2]:将所有给定集合的并集存储在destination集合中;
SSCAN key cursor [MATCH pattern][COUNT count]:迭代集合中的元素;
Sorted Set(有序集合)
Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。有序集合的成员是唯一的,但分数(score)去可以重复。集合是通过哈希表实现的,所以添加、删除、查找的复杂度都是O(1),集合中最多可以包含2**32-1个元素(每个列表超过40亿个元素)。
实例
> ZADD mysset 1 redis
(integer) 1
> ZADD mysset 2 mongodb
(integer) 1
> ZADD mysset 3 mysql
(integer) 1
> ZADD mysset 3 mysql
(integer) 0
> ZADD mysset 4 mysql
(integer) 0
> ZRANGE mysset 0 10 WITHSCORES
1) "redis"
2) "1"
3) "mongodb"
4) "2"
5) "mysql"
6) "4"
在以上实例中我们通过ZADD命令向redis的有序集合中添加了三个值并关联上分数。
Redis 有序集合命令
ZADD key score1 member1[score2 member2]:向有序集合添加一个或多个成员,或者更新已存在成员的分数;
ZCARD key:获取有序集合的成员数;
ZCOUNT key min max:计算在有序集合中指定区间分数的成员数;
ZINCRBY key increment member:有序集合中对指定成员的分数加上增量increment;
ZINTERSTORE destination numkeys key [key...]:计算给定的一个或多个有序集的交集并将结果存储在新的有序集合key中;
ZLEXCOUNT key min max:在有序集合中计算指定区间内成员数量;
ZRANGE key start stop [WITHSCORES]:通过索引区间返回有序集合指定区间内的成员;
ZRANGEBYEX key min max[LIMIT offset count]:通过字典区间返回有序集合的成员;
ZRANGEBYSCORE key min max [WITHSCORES][LIMIT]:通过分数返回有序集合指定区间内的成员;
ZRANK key member:返回有序集合中指定成员的索引;
ZREM key member[member...]:移除有序集合中的一个或多个成员;
AREMRANGEBYEX key min max:移除有序集合中给定的字典区间的所有成员;
ZREMRANGEBYRANK key start stop:移除有序集合中给定的排名区间的所有成员;
ZREMRANGEBYSCORE key min max:移除有序集合中给定的分数区间的所有成员;
ZREVRANGEBYSCORE key max min[WITHSCORES]:返回有序集合中指定分数区间内的成员,分数从高到低排序;
ZREVRANK key member:返回有序集合中指定成员的排名,有序集合成员按分数值递减(从大到小)排序;
ZSCORE key member:返回有序集合中成员的分数值;
ZUNIONSTORE destination numkeys key [key...]:计算给定的一个或多个有序集的并集,并存储在新的key中;
ZSCAN key cursor[MATCH pattern][COUNT count]:迭代有序集合中的元素(包括元素成员和元素分值);
Redis 基础:Redis 数据类型的更多相关文章
- redis基础:redis下载安装与配置,redis数据类型使用,redis常用指令,jedis使用,RDB和AOF持久化
知识点梳理 课堂讲义 课程计划 1. REDIS 入 门 (了解) (操作) 2. 数据类型 (重点) (操作) (理解) 3. 常用指令 (操作) 4. Jedis (重点) (操作) ...
- 【Redis】Redis基础 - Redis安装启动测试
Redis基本 - 安装 文章目录 Redis基本 - 安装 Linux下安装Redis Docker 方式 Github 源码编译方式 直接安装方式 Windows下Redis安装 记录 - Red ...
- redis 基础 Redis 数据类型
String(字符串) Hash(哈希) List(列表) Set(集合) zset(sorted set:有序集合)
- redis基础----->redis的基本使用(一)
这里我们就在虚拟机中安装redis,并且使用java和python实现简单的操作.深情是我承担不起的重担,情话只是偶尔兑现的谎言. redis的使用 下载地址:https://redis.io/.安装 ...
- mysql主从复制、redis基础、持久化和主从复制
一.mysql(mariadb)基础 1.基础命令(centos7操作系统下) 1.启动mysql systemctl start mariadb 2.linux客户端连接自己 mysql -uroo ...
- linux - redis基础
目录 linux - redis基础 redis 源码编译安装 redis 数据结构 1. strings类型 2. list 类型 3. sets集合类型 有序集合 5. 哈希数据结构 centos ...
- Redis 的基本数据类型 和 基础应用场景
Redis 的基础应用场景 获取中奖用户ID,随机弹出之后集合中就不存在了[set] 存储活动中中奖的用户ID,保证同一个用户不会中奖两次[set] 存储粉丝列表,value 为粉丝的用户ID,sco ...
- Redis基础学习(二)—数据类型
一.Redis支持的数据类型 Redis中存储数据是通过key-value存储的,对于value的类型有以下几种: (1)字符串. (2)Map (3)List (4)Set public cla ...
- Redis 基础及各数据类型对应的命令
Redis 命令文档 基本概念 安装及使用 可以在官网下载源码编译安装.对于 CentOS,还可以通过 yum install redis 安装. Redis 安装完成后,通过 redis-serve ...
- Redis基础(一)数据结构与数据类型
Redis数据结构 Redis一共有六种数据结构,分别是简单动态字符串.链表.字典.跳表.整数集合.压缩列表. 简单动态字符串(SDS) Redis只会使用C字符串作为字面量,在大多数情况下,Redi ...
随机推荐
- Charles 抓包使用教程
将 Charles 设置成系统代理 Charles 主界面介绍 过滤网络请求 截取 iPhone 上的网络封包 截取 Https 通讯信息 模拟慢速网络 修改网络请求内容 给服务器做压力测试 修改服务 ...
- Python的requests、greenlet和gevent模块在windows下安装
一.requests模块在windows下安装 Linux系统下requests的安装方法在http://docs.python-requests.org/en/latest/user/install ...
- c#多线程中Lock()关键字的用法小结
本篇文章主要是对c#多线程中Lock()关键字的用法进行了详细的总结介绍,需要的朋友可以过来参考下,希望对大家有所帮助 本文介绍C# lock关键字,C#提供了一个关键字lock,它可以把一段 ...
- Go入门指南
第一部分:学习 Go 语言 第1章:Go 语言的起源,发展与普及 1.1 起源与发展 1.2 语言的主要特性与发展的环境和影响因素 第2章:安装与运行环境 2.1 平台与架构 2.2 Go 环境变量 ...
- Docker入门与实践之 Dockerfile 语法详解
一.Dockerfile 概述 Dockerfile是docker程序的解释脚本文件,Dockerfile 是一条一条的指令,Docker程序将dockerfile中的一条条指令编译成Linux可执行 ...
- layui数据表格使用(一:基础篇,数据展示、分页组件、表格内嵌表单和图片)
表格展示神器之一:layui表格 前言:在写后台管理系统中使用最多的就是表格数据展示了,使用表格组件能提高大量的开发效率,目前主流的数据表格组件有bootstrap table.layui table ...
- RabbitMQ理论部分
概念 queue 队列 exchange 交换机 bind 绑定 channel 通道 一个发送消息流程包含上述四个概念.消息经过channel传递给exc ...
- [ c++] cmake 编译时 undefined reference to `std::cout' 错误的解决方案
cmake .. 和 make 之后,出现如下错误 Linking CXX executable ../../../bin/ModuleTest CMakeFiles/ModuleTest.dir/ ...
- python下graphviz安装
参考链接:https://blog.csdn.net/u013250416/article/details/72790754 1.安装Graphviz 在graphviz的官网(网址:http://w ...
- Visual Studio win平台 AI环境搭建
内容提要:我觉得难点主要出在下载上,程序跑的都挺流畅的.下载有时会失败. 1.下载安装git.这一步主要为了下载示例和自动安装环境的python代码,直接去github上用网页下载也是一样的,git不 ...