`

redis(二)-数据类型

 
阅读更多

参考文章:http://www.jb51.net/article/56448.htm

 

一、redis数据类型

·1.1 字符串-strings

    有人说,如果只使用redis中的字符串类型,且不使用redis的持久化功能,那么,redis就和memcache非常非常像了。这说明strins类型是一个很基础的数据类型,也是任何存储系统都必须必备的数据类型。字符串类型是二进制安全的。

    1、set

         创建string。注意:此命令默认会覆盖已存在key的值。

         用法:

         set JOAN DORA
         set JOAN DORA nx  -->如果存在key为JOAN时,则会失败
         set JOAN DORA xx  -- >成功

    2、incr

         如果value是数字类型(当然也是string的),可以使用此命令,进行加法操作。

         用法:

         set counter 100
         incr counter   -->101
         incrby counter 49  -->150

        在遇到数值操作时,redis会将字符串类型转换为数值。由于INCR等指令本身就具有原子操作的特性,所以我们完全可以利用redis的INCR、INCRBY、DECR、DECRBY等指令来实现原子计数的效果。假如,在某种场景下有三个客户端同时读取了mynum的值(值为2),然后对其同时进行了加1操作,那么,最后mynum的值一定是5。不少网站都利用redis的这个原子特性来实现业务上的统计计数需求。

    3、get

        取值,用法:

get JOAN -->DORA

  

  1.2 列表-lists

    rdis中的lists在底层实现并不是数组,而是链表,也就是对于一个具有上百万个元素的lists来说,在头部和尾部插入一个新元素,其时间复杂度是常数级别的。虽然lists有这样的优势,但同样尤其弊端,那就是,链表型lists的元素定位会比较慢,而数组型lists的元素定位就会快很多。

    lpush、rpush、lrange

    redis 的一种数据结构:双端列表。lpush是将alue放到列表的头部,rpush是将value放在列表的尾部。

    用法:

    rpush mylist a
    rpush mylist b
    lpush mylist first
    lrange mylist 0 -1  -->0代表列表的第一个  -1代表列表的最后一个  -2 是倒数第二个
    rpush mylist a b c d "JOANDORA"   --> 连续存放多个值

     应用场景:

    1、我们可以利用lists来实现一个消息队列,而且可以确保先后顺序,不必像Mysql那样还要通过order by来进行排序。

    2、利用lrange可以很方便的实现分页功能。

    3、在博客系统中,没篇博文的评论也可以存入一个单独的lists中。

    1.2.1 LTRIM 

             对一个列表进行修剪,让列表只保留制定区间的元素。例如:LTRIM 0 2:表示只保留list前三个元素,其他元素都删除。

1.3 无序不重复集合 set

    redis中的集合是一种无序的集合集合相关的操作也很丰富,如添加删除已有元素,取交集、并集、差集等。

    用法: 

//向集合myset中加入一个新元素"one"
127.0.0.1:6379> sadd myset "one" 
(integer) 1
127.0.0.1:6379> sadd myset "two"
(integer) 1
//列出集合myset中的所有元素
127.0.0.1:6379> smembers myset 
1) "one"
2) "two"
//判断元素1是否在集合myset中,返回1表示存在
127.0.0.1:6379> sismember myset "one" 
(integer) 1
//判断元素3是否在集合myset中,返回0表示不存在
127.0.0.1:6379> sismember myset "three" 
(integer) 0
//新建一个新的集合yourset
127.0.0.1:6379> sadd yourset "1" 
(integer) 1
127.0.0.1:6379> sadd yourset "2"
(integer) 1
127.0.0.1:6379> smembers yourset
2) "2"
//对两个集合求并集
127.0.0.1:6379> sunion myset yourset 
1) "1"
2) "one"
3) "2"
4) "two"

   

   1.4 有序不重复集合 sorted set

    有序集合中的每个元素都关联一个序号(score),这便是排序的依据。很多时候,我们都将redis中的有序集合叫做zsets。这是因为在redis中,有序集合相关的操作指令都是以z开头,比如:zrange、zadd等。

    

     zadd 1 a  --> 1是排序
     zrange  myset 0 -1 --> 查看集合元素
     zrevrange myset 0 -1 -->  查看集合元素,反向
     zrange myset 0 -1 withscores  --> 打印元素的时候,间隔打印出序号

 

  1.5 哈希-hashes

    哈希是从redis-2.0版本之后才有的数据结构。hashes存的是字符串和字符串值之间的映射,比如一个用户要存储其全名、姓氏、年龄等等,就很适用hashes。

    

        hmset key field value  --> 将多个field-vaue存放到key中
        hmset webset google www.google.com baidu www.baidu.com
        hmget webset google
        hget webset yahoo --> 能查,不过结果为空
        hincrby user age 10  --> 给hash中age加10

 二、其他操作命令

  2.1、mset、mget

    可同时完成多个key-value存取值

    用法:

     mset a 10 b 20 c 30
     mget a b c 

 

  2.2、del

    删除key-value

    用法:del mylist

  2.3、pop

    取值,和push类似,也是分左和右。

    用法:rpop mylist

    lpop mylist

分享到:
评论

相关推荐

    redis64-2.6.12.1.rar 亲测好用

    例如,更现代的Redis版本支持更多的数据类型、Lua脚本、集群模式、模块系统等。尽管如此,对于某些需要兼容旧系统的项目,或者对简单功能有需求的应用,2.6.12仍然是一个可靠的选择。 为了充分利用Redis的功能,...

    redis64-3.0.501.rar

    1. 数据类型:Redis支持五种基本数据类型,包括字符串(String)、哈希(Hash)、列表(List)、集合(Set)和有序集合(Sorted Set),每种类型都有其特定的应用场景。 2. 持久化:为了防止数据丢失,Redis提供了RDB(定期...

    关于 phpredis2.2.5-5.5 ts-vc11-x64 的分享版本

    这对于需要大量内存的 Redis 使用场景,如缓存大量数据或构建大规模数据结构,是非常有利的。 5. **安装步骤** 安装 PHPRedis 时,通常需要将扩展文件(如 `php_redis.dll`)放入 PHP 的 `ext` 目录,并在 `...

    Redis稳定版 Redis-x64-5.0.14.1.zip

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

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

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

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

    2. **键值浏览**:工具提供了清晰的键值列表视图,支持按照不同数据类型(如字符串、哈希、列表、集合、有序集合)显示和编辑数据。用户可以直接在界面上输入命令,或者使用提供的快捷操作来添加、修改或删除键值。 ...

    Another-Redis-Desktop-Manager.1.6.1

    通过此工具,用户可以直观地查看Redis中的键值对,进行键的增删改查,支持多种数据类型如字符串、哈希、列表、集合和有序集合的管理。 在标签“redis”中,我们可以看到RDM与Redis服务器的紧密关联。它支持连接到...

    redis-windows-7.0.8.zip

    - **字符串**:最基础的数据类型,可以存储任何序列化后的数据。 - **哈希**:用于存储键值对的集合,适用于表示对象。 - **列表**:按照插入顺序存储元素,可以实现消息队列的功能。 - **集合**:不包含重复...

    redis-windows-7.2.4.zip

    - **键值存储**:Redis基于键值对的数据结构,键和值可以是字符串、哈希、列表、集合、有序集合等多种类型。 - **内存存储**:Redis默认将所有数据存储在内存中,提供极快的读写速度,但也可以通过配置进行持久化...

    redis-mac-6.2.2

    它的数据类型包括字符串、哈希、列表、集合和有序集合,使得它能够适应各种复杂的应用场景。此外,Redis还支持事务、发布/订阅、lua脚本等功能,进一步增强了其功能性和灵活性。 总的来说,"redis-mac-6.2.2"是一个...

    Redis-7.0.12-Windows-x64

    丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。 原子 – Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多...

    redis-desktop-manager-0.8.8.384.exe安装包

    2. 数据浏览和编辑:可视化地查看和修改Redis中的键值对,包括查看键类型、过期时间等信息,并能直接编辑数据内容。 3. 操作命令行:提供了命令行窗口,可以执行Redis命令,如`SET`、`GET`、`DEL`、`PUSH`、`LPOP`等...

    Redis-x64-5.0.10.zip、Redis-x64-5.0.10.msi

    Redis支持多种数据类型,包括字符串、哈希、列表、集合、有序集合,这些数据结构使得它在缓存、消息队列、计数器等场景中表现出色。此外,Redis还提供了发布/订阅、事务、持久化、Lua脚本等功能,极大地扩展了其应用...

    redis64-3.0..zip

    这些数据类型使得Redis能够处理各种复杂的应用场景,如缓存、计数器、发布/订阅等。 在Windows环境下运行Redis可能与在Unix-like系统上有所不同,但"redis64-3.0..zip"提供了一个便捷的解决方案,使得Windows用户也...

    Redis-x64-5.0.14 windows

    Redis支持多种数据类型,如字符串(String)、哈希(Hash)、列表(List)、集合(Set)和有序集合(Sorted Set)。这些数据类型允许用户以灵活的方式存储和操作数据。 在Windows上安装Redis-x64-5.0.14,首先需要...

    Redis-Windows-6.2.6.zip

    Redis支持多种数据类型,如字符串、哈希、列表、集合和有序集合,这使得它非常适合处理多种场景,如缓存、计数器、队列等。此外,Redis还提供了事务、发布/订阅、Lua脚本等功能,增强了其实用性和灵活性。 在...

    Another-Redis-Desktop-Manager.1.5.5

    3. **数据浏览和编辑**:用户可以直观地查看和修改数据库中的键值对,支持多种数据类型,如字符串、列表、哈希表、集合和有序集合。 4. **可视化工具**:通过图表或其他可视化方式展示数据,帮助用户更好地理解数据...

    Another-Redis-Desktop-Manager.1.5.6

    2. **浏览键值**:在界面中看到所有键及其对应的值,支持多种数据类型,如字符串、哈希、列表、集合和有序集合。 3. **操作键值**:添加、修改、删除键值,以及执行复杂的Redis命令,如`INCR`、`HSET`、`LPOP`等。 4...

    redis7.2.3-windows

    Redis支持多种数据类型,如字符串(String)、哈希(Hash)、列表(List)、集合(Set)和有序集合(Sorted Set)。了解这些类型有助于设计高效的数据结构,满足不同场景需求。 6. **持久化** Redis支持两种持久...

    redis64-3.0.501-windows.zip

    7. **数据类型与操作**:Redis支持多种数据结构,如字符串(String)、哈希(Hash)、列表(List)、集合(Set)和有序集合(Sorted Set)。了解这些数据类型及其操作方法是使用Redis的基础。 8. **持久化**:Redis...

Global site tag (gtag.js) - Google Analytics