• redis五大数据类型


    redis五大数据类型

    字符串

    哈希

    列表

    集合

    有序集合

    键操作

    # 1.set 键名 值(覆盖)
    set k1 v1
    
    # 2.EXISTS 键名
    EXISTS k1
    
    # 3.查所有keys值
    keys *
    
    # 4.move 键值 库编号,当前库对应键值会消失
    move k1 2
    
    # 5.ttl 键值,查看键存活时间(永久为-1,过期或不存在-2)
    
    # 6.get 键值
    
    # 7.EXPIRE 键值 存活时间
    
    # 8.type 键值 查看键类型
    
    # 9.del 键值
    
    

    字符串

    # append 键  值 ,追加字符串
    append k1 12345
    
    # STRLEN 键    获取字符串长度
    
    
    #incr、decr、incrby、decrby一定要是数字才能加减
    incr k1
    decr k1
    incrby k1 3
    decrby k1 3
    
    # getrange k1 0 -1 (获取全部)
    
    # getrange k1 0 3 (获取0-3位左闭右开)
    
    # setrange k1 0 xxx (第0位开始覆盖)
    
    # setex 键值 存活时间 value (set with expires)
    
    # setnx 键值 value (set if not exist)如果存在不执行
    
    # mset k1 v1 k2 v2 k3 v3 (一次设置多对值)
    
    # msetnx k1 v1 k2 v2 k3 v3 (如果有一个存在,全部插入失败)
    
    
    # mget k1 k2 k3 (一次获取多个值)
    

    列表

    是一个字符串链表,left、right都可以插入添加

    • 如果键不存在,创建新的链表

    • 如果键已存在,新增内容

    • 如果值全部移除,对应的键也就消失了

    链表的数据结构导致了对头、尾的操作效率极高,但对中间元素效率O(n)。

    # lpush list01 1 2 3 4 5 (左插)
    
    # lrange list01 0 -1
    
    # rpush list02 1 2 3 4 5 (右插)
    
    # lpop list01
    
    # rpop list02
    
    # lindex list01 3 按照索引从上到下获得元素
    
    # llen list01  获取列表长度
    
    # lrem list01  删n个value
    lrem list01 n m # 移除列表中n 个 m
    
    # ltrim list01  0 4 (将list01的0到4包含4的索引取出,并赋值给list01)
    
    # rpoplpush  源数组  目标数组 
    rpoplpush list01 list02 
    
    # lset key index value (索引为index设置为value)
    
    # linsert key before/after 值1 值2(在值1前插入值2)
    
    
    

    集合

    # sadd set01 1 1 2 2 3 3  添加(自动过滤重复元素)
    
    # scard set01  获取元素个数
    
    # srem key value 删除集合中的元素
    
    # srandmember key n  随机出n个元素
    
    # spop key  随机出栈
    
    # smembers set01 查看set01中的所有元素
    
    # smove key1 key2  (将key1中的某个值移到key2中)
    
    # 数学集合运算
    # sdiff key1 key2  (取key1和key2的差集,在key1中但不在key2中)
    
    # sinter key1 key2 (取key1和key2的交集,在key1且在key2中)
    
    # sunion key1 key2 (取key1和key2的并集)
    

    哈希

    KV模式不变,但V是一个键值对。

    # hset user id 01 (键为user,值是id-01的键值对)
    hset user id 01 name yyh age 18
    
    # hget user id 
    hget user id name age
    hgetall user
    
    # hdel user id (将user中的id删除)
    
    # hexists user id (判断user中是否有id)
    
    # hkeys user (获取user中的所有key)
    
    # hvals user (获取user中的所有value)
    
    # hincrby user age 2 (user的age增加2)
    
    # hincrby user score 0.5 (将user的score增加0.5)
    
    # hsetnx user age 25 (如果user不存在age则增加)
    

    排序集合(sorted set)

    # zadd zset01 60 v1 70 v2 80 v3 (60-v1,70-v2,80-v3)构成键值对,可以按键排序
    
    # zrange zset 0 -1 (获取集合内所有元素)
    
    # zrange zset 0 -1 withscores
    
    # zrangebyscore key 开始score 结束score 
    zrangebyscore 60 90    (60<=score<=90)
    zrangebyscore 60 (90    (60<=score<90)
    zrangebyscore (60 (90    (60<score<90)
    zrangebyscore 60 90 limit startindex nums (先取出60-90的,再获取startindex开始nums个元素)
                       
    # zrem zset01 v5 (移除v5这个元素)
    
    # zcard (获取元素个数)
    
    # zcount zset01 60 90 (返回score在60-90之间的元素个数)
                       
    # zrank zset01 v4  (获取v4在zset01中的索引)
    
    # zcore zset01 v4 (获取v4对应的score值)
    
    # zrevrank zset01 v4 (获取v4的逆序坐标值)
                       
    # zrevrange zset01 0 -1 (逆序获取zset01的元素)
    
    # zrevrangebyscore zset01 90 60 (根据分数逆序)
                       
    
    
  • 相关阅读:
    jstl插件使用
    IDEA配置tomcat
    Spring框架
    2020/7/17 JAVA模拟斗地主发牌洗牌
    2020/7/15 JAVA之Map接口
    2020/7/14 Java之增强for循环、泛型、List接口、Set接口
    2020/7/13 集合之ArrayList集合、Collection接口、Iterator迭代器
    2020/7/13 常用API之基本类型包装类、System类、Math类、Arrays类、大数据运算
    2020/7/11 日期相关类
    2020/7/8 JAVA总结之:匿名对象/内部类/包的声明与访问/访问修饰符/代码块
  • 原文地址:https://www.cnblogs.com/Ghostant/p/12423685.html
Copyright © 2020-2023  润新知