KittyDaddy's blog KittyDaddy's blog
首页
  • 学习笔记

    • 《Java基础》
    • 《常用设计模式》
    • 《MYSQL》
    • 《GO语言》
    • 《Spring源码解读》
  • 微服务解决方案

    • 锁的演化
    • 简单限流方案
    • 海量数据切分
  • 中间件

    • Nginx
    • MQ
    • Redis
    • Keepalived
  • 面试记
  • 杂文
  • 开源
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

老猫

万物皆系统
首页
  • 学习笔记

    • 《Java基础》
    • 《常用设计模式》
    • 《MYSQL》
    • 《GO语言》
    • 《Spring源码解读》
  • 微服务解决方案

    • 锁的演化
    • 简单限流方案
    • 海量数据切分
  • 中间件

    • Nginx
    • MQ
    • Redis
    • Keepalived
  • 面试记
  • 杂文
  • 开源
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • Redis安装教程
  • Redis操作集合
    • Redis持久方式
    • Redis进阶
    • 《Redis》
    老猫
    2020-07-31
    目录

    Redis操作集合

    # 操作Redis的String数据类型

    string字符串:redis最简单的字符串类型的键值对缓存,也是最基本的。

    key相关:

    keys * :查看所有的key值(不建议在生产使用,影响性能)
    type key:查看key的类型
    
    1
    2

    string类型:

    get/set/del:查询/设置/删除
    set rekey data:设置该key对应的值,如果存在,则覆盖
    setnx rekey data:设置该key对应的值,如果存在,则不覆盖
    set key value ex time:设置带过期时间数据,time以秒为单位
    ttl key(time to leave):查看过期时间还剩下多久,-1永不过期,-2已过期
    expire key time:给某个key值设置过期时间
    append key value:合并字符串,在原有的字符串后面添加值
    strlen key:字符串长度
    
    incr key:如果是数字,则表示+1
    decr key:如果是数字,则表示-1
    incrby key num:如果为数字,则表示增加指定的数值
    decrby key num:如果为数字,则表示减少指定的数值
    
    getrange key start end:获取截取数据,end=-1表示到最后。
    setrange key start newdata:从start位置开始替换数据。
    
    mset key1 value key2 value..:表示连续设值
    mget key1 key2..:表示连续取值
    msetnx key1 value key2 value..:表示连续设值,如果存在则不设置
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20

    其他操作:

    select index:切换数据库,总共默认是16个数据库
    flushdb:删除当前数据库下的所有的数据
    flushall:删除所有库的数据	
    
    1
    2
    3

    # 操作redis的Hash数据类型

    Hash:类似于map,存储结构化的数据结构,比如直接存储一个对象(“不能有嵌套对象”)。

    相关操作:

    hset user name ktdaddy:表示给user中的name属性设置的值为ktdaddy
    hget user name:表示获取user对象中的name的值
    hmset user age 18 phone 13814637186:表示给user对象设置年龄以及手机号码
    hmget user name age phone:表示获取user对象的属性的值
    hgetall user:获取所有user对象的所有的值
    hincrby user age 2:表示给user对象中的age的属性加2
    hincrbyfloat user age 2.2:表示给user对象中的age属性加2.2
    hlen user:有多少个属性
    hexists user age:判断user中的年龄属性是否存在,如果存在则返回1,如果不存在则返回0
    hkeys user:获取user的全部的key值。
    hvals user:获取所有的user的key对应全部的值。
    hdel user name:删除对象中的属性
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12

    # 操作redis的List数据类型

    list:列表,[1,2,3,4,5..]

    相关操作

    lpush userList 1 2 3 4 5:构建一个list,从左边开始存入数据
    rpush userList 1 2 3 4 5:构建一个list,从右边开始存入数据
    lrange userList start end:表示获取一个list
    lpop userList:表示从左侧开始拿出数据
    rpop userList:表示从右侧开始拿出数据
    llen userList:获取list的长度
    lindex userList 0:表示获取0位置的数据
    lset userList 1 4:表示将1号位置的值设置成4
    linsert userList before/after originValue value:在userList前或者后插入指定值的后还是前
    lrem userList 2 3:删除userList中两个值为3的数据
    ltrim list start end:截取值,替换原来的list
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11

    # 操作redis的set数据

    set和list类似,只set中的数据不支持重复数据

    相关操作

    sadd student zhangsan lisi wangwu wangwu:表示向student这个set集合中添加数据。
    smembers student:表示遍历展现所有的set集合中的数据。
    scard student:表示查询这个student的集合中一共有多少个数据。
    sismember student zhangsan:判断在student这个集合中是否存在zhangsan这个人,如果存在则返回1,不存在则返回0
    spop student num:表示取出set中num数量的值。
    spop student:表示取出student中的一个值。
    srandmember student 2:表示随机获取student这个列表中两个数据
    smove set1 set2 10:表示将set1中的10这个元素移动到set2中
    sdiff set1 set2:表示获取在set1中存在,但是在set2中不存在的数据(表示差集)
    sinter set1 set2:表示既在set1中同时也在set2中(表示交集)
    sunion set1 set2:表示set1以及set3的集合(表示并集)
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11

    # 操作redis的zset数据

    表示sorted set,排序的set,可以去重,可以排序。例如可以根据用户的积分进行排名,积分作为set的一个数值,可以根数值进行排序,set中的每一个member都会带有分数。

    相关操作

    zadd zser 10 zhangsan 20 lisi 30 wangwu 40 zhaoliu:设置这些人对应的分数情况。
    zrange zser 0 -1:查看所有zset中zser的值。
    zrange zser 0 -1 withscores:获取所有zset中带有分数的人。
    zrank zser zhangsan:获取zhangsan对应的下标。
    zscore zser zhangsan:获取zhangsan对应的分数情况。
    zcard zser:统计zset中的个数。
    zcount zser 20 30:统计20和30分的数量
    zrangebyscore zser 10 90:获取得分在10-90之间的所有的用户。
    zrangebyscore zser (10 (90:获取在10-90之间所有的用户,不包含10和90。
    zrangebyscore zser 10 90 limit start end:在某个下标范围之间查询分数在10-90之间的数据。
    zrem zser zhangsan:移除zset中zhangsan这项的值
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11

    以上就是介绍了redis的这五种数据类型的常用的操作方式。

    上次更新: 2022/11/30, 00:06:25
    Redis安装教程
    Redis持久方式

    ← Redis安装教程 Redis持久方式→

    最近更新
    01
    让大龄程序员欲罢不能的事儿
    09-23
    02
    运营明明设置了活动开始时间,为什么到点没生效?聊聊动态定时任务
    07-30
    03
    不是,大哥,咱这小门小户的,别搞我CDN流量啊
    07-25
    更多文章>
    Theme by Vdoing | Copyright © 2020-2024 Kitty Daddy | License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式