`

Redis-2 数据类型详解之String和key space操作

阅读更多

1. String 类型

String 类型是Redis 中最简单的值类型,这也是memcached 中唯一的数据类型。所以对于新手来说在Redis中使用也是非常自然的。

因为Redis的Key是字符串,值也可以是String类型的,所以,我们可以把两个字符串匹配在一起。字符串类型也有很多使用案例,比如缓存HTML片段或者页面。

 

首先来一个基本的例子:

Java代码 
  1. 127.0.0.1:6666> set mykey shang  
  2. OK  
  3. 127.0.0.1:6666> get mykey  
  4. "shang"  
  5. 127.0.0.1:6666>   
 

 

1. 如上所示,SET 和 SET 命令可以用来设置和获取字符串值。并且,SET 会替换掉对应key的任何已经存进的值。

Value 可以示任何种类的字符串(包括二进制数据),比如你可以为一个键存储 jpeg 图片。值最大不能超过512MB 。

 

SET 命令有一些又去的选项,他们作为额外的参数存在。比如,我可以让 SET 命令在键存在的时候失败,或者相反的,仅仅在key存在的时候才成功,如下所示:

Java代码 
  1. 127.0.0.1:6666> set mykey henushang nx  
  2. (nil)  
  3. 127.0.0.1:6666> set mykey henushang xx  
  4. OK  
  5. 127.0.0.1:6666> set newmykey henushang xx  
  6. (nil)  

 

 

 

虽然String 示Redis的基本值,但是你仍然可以对他们执行有趣的操作。例如,原子增长:

Java代码 
  1. 127.0.0.1:6666> set mynum 100  
  2. OK  
  3. 127.0.0.1:6666> incr mynum  
  4. (integer) 101  
  5. 127.0.0.1:6666> incr mynum  
  6. (integer) 102  
  7. 127.0.0.1:6666> incrby mynum 48  
  8. (integer) 150  
 

2. INCR 命令把字符串值转化为整型,然后增加1,并且最后把获得的值设为新的值。还有一些类似的命令,比如:INCRBY、DECR 和 DECRBY 等。在内部他们除了一点点不同外,算是相同的命令。至于什么是原子的操作字符串,就不再多做解释。

 

3. 还有很多操作字符串的命令。比如 GETSET 命令,它为一个key设置一个新的值,并且返回原来的老值。

 

4. 在单个命令中设置或者检索多个键的值对于减少延迟时间也是非常有用的。因此而诞生了 MSET 和 MGET 命令:

Java代码 
  1. 127.0.0.1:6666> mset a 10 b 20 c 30  
  2. OK  
  3. 127.0.0.1:6666> mget a b c  
  4. 1"10"  
  5. 2"20"  
  6. 3"30"  

当使用 MGET 的时候,Redis返回一个值的数组。

 

2. 修改或查询键空间

有一些命令不是为某个类别而单独设计的,他们是为了与键空间(key space)交互的,因此,可以被用于任何类型的键。

例如,EXISTS 命令会返回1或者0以标志一个键在数据库中存在或者不存在。DEL 命令会删除一个键和与其相关联的值,无论值是什么类型的。

Java代码 
  1. 127.0.0.1:6666> set mykey shang  
  2. OK  
  3. 127.0.0.1:6666> exists mykey  
  4. (integer) 1  
  5. 127.0.0.1:6666> del mykey  
  6. (integer) 1  
  7. 127.0.0.1:6666> exists mykey  
  8. (integer) 0  
  9. 127.0.0.1:6666> del mykey  
  10. (integer) 0  

 

从上例中你可以看出,DEL 删除成功会返回1,删除失败会返回0。

有很多与键空间相关的命令,但是上面两个和TYPE 是重要的几个命令,TYPE 命令可以返回与某个键相关联的值的类型:

 
Java代码 
  1. 127.0.0.1:6666> set mykey x  
  2. OK  
  3. 127.0.0.1:6666> type mykey  
  4. string  
  5. 127.0.0.1:6666> del mykey  
  6. (integer) 1  
  7. 127.0.0.1:6666> type mykey  
  8. none  
  9. 127.0.0.1:6666> set mykey 1  
  10. OK  
  11. 127.0.0.1:6666> type mykey  
  12. string  
 

由上例可以看出TYPE的作用,但是得注意一点,set key 1 的时候,Redis是把 1 当作字符串处理的,这个恰恰与上面解释 INCR 的时候的第一步是吻合的:先把字符串转为整形。

 

 3. Redis 过期:限制了生存时间的键

在讨论更加复杂的数据结构之前,我们需要讨论Redis的另一个与值类型无关的特性:Redis 过期(expires)。最基本的是你可以为一个 key 设置一个超时时间,它可以限制 key 的生存时间。当生存时间到的时候,这个 key 会自动的销毁,就好像用户调用了 DEL 命令一样。

 

快速浏览一下有关 Redis 过期的信息:

  • 可以使用秒或者毫秒作为精度;
  • 然而过期时间的决定是1毫秒;
  • 有关过期时间的信息是被复制的并且持久化到硬盘上的,当你的Redis 是关闭的时候,时间实际上已经过期(这意味着Redis 保存了一个过期的key)

设置过期是非常简单的:

Java代码 
  1. 127.0.0.1:6666> set mykey shang  
  2. OK  
  3. 127.0.0.1:6666> expire mykey 5  
  4. (integer) 1  
  5. 127.0.0.1:6666> get mykey  
  6. "shang"  
  7. 127.0.0.1:6666> get mykey  
  8. (nil)  

 

在两次 GET 调用中间那个key消失了,因为第二次调用已经超过了5秒。在上例中,使用EXPIRE 是为了设置过期时间(它也可以用作修改一个已经设置了过期时间的key的过期时间,正如PERSIST可以被用于移除过期时间使key可以永久的保存)。我们也可以使用其他Redis命令创建设置了过期时间的键,例如使用SET的选项:

Java代码 
  1. 127.0.0.1:6666> set mykey 100 ex 10  
  2. OK  
  3. 127.0.0.1:6666> ttl mykey  
  4. (integer) 7  

 

上例中创建了一个值字符串的100的key,并且过期时间是10秒。然后调用TTL命令来查看key剩下的生存时间。

想要使用毫秒精度来设置和查看过期时间,可以查看查看PEXPIRE 和 PTTL 命令,以及SET选项的全部列表。

 

额。。。下面依然是我建的一个公众帐号,可以关注一下哦,谢谢

1
0
分享到:
评论

相关推荐

    Redis稳定版 Redis-x64-5.0.14.1.zip

    1. **数据类型**: Redis支持五大数据类型:字符串(String)、哈希(Hash)、列表(List)、集合(Set)和有序集合(Sorted Set),这些类型为各种应用场景提供了丰富的选择。 2. **持久化**: Redis提供了两种主要的持久化...

    Redis-x64-5.0.14 windows

    这些数据类型允许用户以灵活的方式存储和操作数据。 在Windows上安装Redis-x64-5.0.14,首先需要下载并解压压缩包,其中包括可执行文件`redis-server.exe`。启动Redis服务,只需在命令行中运行该文件,例如: ``` ....

    redis-windows-7.2.4.zip

    - 使用`redis-server --service-start`和`redis-server --service-stop`命令启动和停止服务。 6. **安全性**: - Redis默认不启用密码认证,为了安全,可以在配置文件中设置`requirepass`密码。 - 通过`bind`...

    redis-5.0.4.tar.gz下载及redis安装过程

    redis安装 1: 下载redis-5.0.4.tar.gz 2: 解压源码并进入目录 tar zxvf redis-5.0.4.tar.gz cd redis-5.0.4 ...String(字符串)类型: set name lijie #设置键name的值为lijie get name #获取name的值。

    tomcat-redis-session-manager的jar包-包含Tomcat7和Tomcat8

    此外,为了确保session数据的安全性和一致性,Tomcat-Redis-Session-Manager提供了多种策略,如session过期策略、session复制和故障转移。例如,可以设置session的超时时间,当用户长时间无操作时,session将在Redis...

    Another-Redis-Desktop-Manager.1.6.1

    而Another-Redis-Desktop-Manager(RDM)是一款强大的Redis图形化管理工具,它为开发者提供了直观、便捷的方式来管理和操作Redis服务器。 Another-Redis-Desktop-Manager版本1.6.1,作为一个高效的Redis客户端,...

    redis-windows-7.0.10.zip

    标题中的"redis-windows-7.0.10.zip"表明这是一个针对Windows操作系统的Redis服务器版本,具体为7.0.10版的压缩包文件。 在Windows环境下安装Redis,首先需要解压"redis-windows-7.0.10.zip"文件,这通常会包含一...

    redis-windows-7.0.8.zip

    2. **启动Redis服务**:运行`redis-server.exe`,这是Redis服务器的执行文件。你可以通过命令行参数来配置Redis的行为,例如指定配置文件路径。如果没有提供配置文件,它会默认使用`redis.windows.conf`。 3. **...

    Windows版本Redis-x64-5.0.14安装包

    本篇文章将详细讲解基于标题"Windows版本Redis-x64-5.0.14安装包"的Redis安装过程,以及如何在Windows上配置和使用Redis。 首先,你需要下载Redis的Windows版本,这里提到的是Redis-x64-5.0.14。这个版本适用于64位...

    Redis-x64-3.2.100-稳定版.rar

    2. **3.2.100 版本特性**:此版本是 Redis 的一个稳定版本,相比早期版本,3.2 版本引入了一些新特性,如 LRU(最近最少使用)驱逐策略的改进、流(Streams)数据类型、发布/订阅(Pub/Sub)模式的增强等,提高了...

    redis-windows-redis7.0.5.zip

    作为键值数据库,Redis通过键(key)来唯一标识每个数据项,并允许快速查找和操作对应的值(value)。其高性能主要来源于以下几点: 1. **内存存储**:Redis默认将所有数据存储在内存中,内存的访问速度远超磁盘,...

    Another-Redis-Desktop-Manager-v1.5.5 | redis 桌面视图工具 |windows

    本文将聚焦于在Windows操作系统上使用的Redis桌面管理工具——Another-Redis-Desktop-Manager(ARDM),v1.5.5版本,来详细介绍如何利用该工具进行高效的数据管理和操作。 首先,ARDM是专门为Redis设计的一款图形化...

    redis-windows-7.0.2.zip

    Redis,全称Remote Dictionary Server,是一款开源的、高性能的键值对存储系统,适用于存储、高速访问和操作数据。在Windows环境下,Redis提供了方便的安装和使用方式,如标题所示的"redis-windows-7.0.2.zip"压缩包...

    redis-64.3.0.503

    使用Redis时,你需要根据`redis.conf`配置文件来启动服务器,并使用`redis-cli`进行连接和操作。例如,设置一个键值对可以使用`SET key value`命令,获取值则使用`GET key`。对于复杂的操作,如列表、集合、哈希表的...

    redis-windows-7.2.5.zip

    - 客户端连接:同时,解压包中包含"redis-cli.exe",这是一个命令行客户端,可以用来测试连接和操作Redis。 3. **基本操作** - SET与GET:通过`SET key value`设置键值,`GET key`获取键对应的值。 - LPUSH/RPOP...

    redis-windows-7.0.4.tar.gz

    1. **数据类型**:Redis支持五种基本数据类型,包括字符串(String)、哈希(Hash)、列表(List)、集合(Set)和有序集合(Sorted Set),这些类型提供了丰富的操作命令,满足各种应用场景。 2. **高性能**:Redis通过内存...

    Redis-x64-5.0.14.1.zip

    2. **redis-cli.exe**:这是一个命令行接口工具,用于与Redis服务器交互。你可以通过它来发送命令、查看数据、执行操作以及管理Redis实例。例如,你可以使用`ping`命令检查服务器状态,`SET key value`命令存储数据...

    redis-py-cluster-1.3.5.tar.gz

    `redis-py-cluster`库是Python连接Redis集群的客户端,它提供了简单易用的API,允许开发者执行常见的Redis操作,如设置和获取键值、执行事务、操作哈希表等。该库实现了CLUSTER指挥,如`CLUSTER NODES`和`CLUSTER ...

    redis-7.0.11-windows.zip

    此外,了解 Redis 的数据类型(如字符串、哈希、列表、集合、有序集合)及其操作命令,对于高效地利用 Redis 来解决实际问题至关重要。在 Windows 环境下,使用提供的批处理脚本和可执行文件,可以轻松部署和管理 ...

    redis+redis-desktop-manager-0.8.3.3850+笔记

    `NoSql数据库之Redis笔记.docx`很可能是关于Redis的使用和最佳实践的学习笔记,可能涵盖了Redis的数据类型、命令操作、集群搭建等内容。`redis.conf-中文翻译.txt`则提供了`redis.conf`配置文件的中文解释,有助于...

Global site tag (gtag.js) - Google Analytics