• redis几种数据类型以及使用场景


    1. string类型

    string为最简单类型,一个key对应一个value

    set mykey "wangzai"             ##设置key,第二次赋值会直接覆盖之前的
    setnx mykey "wangzai"           ## 如果mykey存在,则不改变,如果不存在,则创建赋值   
    get mykey                       ##获取key的值
    setex key1 10 1                 ##给key1设置过期时间为10s,值为1
    mset key1 value1 key2 value2    ##设置多个key
    mget key1 key2                  ##获取多个key的值

    2. list类型

    list是一个链表结构,主要功能是push、pop以及获取一个范围的所有值等。

    使用list结构,可以轻松实现最新消息排行,另一个应用是消息队列,可以利用list的push操作,将任务存在list中,然后工作线程再用pop操作将任务取出进行执行。(先进后出)

    lpush list1 "wangzai"                   ##在列表中加入一个元素    
    lrange list1 0 -1                       ##查看list1里面的所有元素
    lpop list1                              ##取出list1最新的元素
    linsert list1 before "wangzai" "doubi"  ##在值为"wangzai"的前面插入一个元素为"doubi"
    lset list1 3 "hehe"                     ##把第五个元素修改为"hehe"
    lindex list1 0                          ##查看第一个元素
    llen list1                              ##查看列表中有多少元素

    3. set类型

    set是集合,对集合操作有添加删除元素,有对多个集合求交并差等操作。在微博应用中,可以将一个用户关注的所有人放在一个集合里,将所有粉丝放在一个集合里,因为redis为集合提供了求交集、并集、差集等操作,就可以方便的实现如共同关注、共同喜好等功能。

    sadd set1 a b c d                      ## 创建集合set1并设置值
    smembers set1                          ## 查看集合set1的值
    srem set1 a b                          ## 删除set1的值
    spop set1                              ## 随机取出一个元素并删除
    sinter set1 set2                       ## 交集
    sinterstore set1 set2 set3             ## 将交集存储到set3 
    sunion set1 set2                       ## 并集
    sunionstore set1 set2 set3             ## 把并集存储到set3  
    sdiff set1 set2                        ## 差集
    sdiffstore set1 set2 set3              ## 把差集存储到set3
    sismember set1 c                       ## 判断一个元素是否属于一个集合
    srandmember set1                       ## 随机取出一个元素,但不删除

    4. sorted set类型

    sorted set是有序集合,比set多了一个权重参数score,使得集合元素能够按score进行有序排列。

    例如存储一个班级同学的成绩,其集合value可以是同学的学号,而score可以是其考试的得分,这样在数据插入集合的时候就进行了排序。

    zadd zset1 1 a                  ## 增加一个集合zset1,score为1,member为a
    zrange zset1 0 -1               ## 按score升序输出member
    zrange zset1 0 -1 withscores    ## 带上分值
    zrem zset1 a                    ## 删除指定元素
    zrank zset1 a                   ## 返回元素的索引值,索引从0开始
    zrevrange zset1 0 -1            ## score降序输出member
    zcard zset1                     ## 返回集合中所有元素的个数
    zcount zset1 1 10               ## 返回分值范围1-10的元素个数
    zrangebyscore zset1 1 10        ## 返回分值范围1-10的元素
    zremrangebyscore zset1 1 10     ## 删除分值范围1-10的元素

    5. hash类型

    把一些结构化的信息打包成hashmap,在客户端序列化后存储为一个字符串的值(一般为json格式),比如用户姓名、年龄、性别等

    hset hash1 name wangzai                  ## 建立hash (hset name key value)
    hget hash1 name                          ## 获取field值  HGET name key
    hgetall hash1                            ## 获取hash1中所有的key和value
    hmset hash2 name wangzai age 26 job it   ## 批量建立键值对
    hmget hash2 name age job                 ## 批量获取field值
    hdel hash2 job                           ## 删除指定field
    hkeys hash2                              ## 打印所有的key
    hvals hash2                              ## 打印所有的value
    hlen hash2                               ## 查看hash2有几个field
  • 相关阅读:
    微信小程序基础学习笔记
    Redis基础知识
    JVM热加载class文件(findLoadedClass)
    FLUSH TABLE WITH READ LOCK详解(转载)
    PostgreSQL前世今生(转载)
    MySQL中CREATE DATABASE和CREATE SCHEMA区别(转载)
    如何学习iOS开发
    iOS 去掉高光显示
    Cloud computing open source industry conference
    Intelligent Manufacturing Industry Forum
  • 原文地址:https://www.cnblogs.com/654wangzai321/p/8082376.html
Copyright © 2020-2023  润新知