zoukankan      html  css  js  c++  java
  • 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 (根据分数逆序)
                       
    
    
  • 相关阅读:
    121. Best Time to Buy and Sell Stock
    70. Climbing Stairs
    647. Palindromic Substrings
    609. Find Duplicate File in System
    583. Delete Operation for Two Strings
    556 Next Greater Element III
    553. Optimal Division
    539. Minimum Time Difference
    537. Complex Number Multiplication
    227. Basic Calculator II
  • 原文地址:https://www.cnblogs.com/Ghostant/p/12423685.html
Copyright © 2011-2022 走看看