zoukankan      html  css  js  c++  java
  • Redis:(一)五大基本数据类型常用命令

    库命令

    select 1    # 切换到1号数据库
    dbsize      # 查看当前数据库的数据数量
    keys *      # 查看当前数据库的所有key
    flushdb     # 清空当前数据库
    flushall    # 清空所有数据库

     

    String(字符串)

    set name liuyu        # 存入一个key为name,值为liuyu的k-v数据
    get name              # 将返回这个key对应的value
    exits name            # 判断当前key是否存在,存在返回1 否则返回0
    move name 1           # 移动这个k-v到指定数据库
    expire name 10        # 给k-v设置过期时间为10秒
    ttl name              # 查看这个k-v的有效时间
    type name              # 查看当前key的类型
    append name "hh"     # 在key对应的值后边拼接字符串,如果key不存在,则相当于set
    strlen name            # 查看这个key对应value的长度
    set views 0            # 这里设置一个整数
    incr views             # 自增1
    decr views             # 自减1
    incrby views 5         # 自增5
    decrby views 5         # 自减5
    getrange name 1 2      # 返回指定下标范围的值
    getrange name 0 -1     # 返回整个值
    setrange name 1 ab     # 将下标为1的值替换为ab
    setex name1 10 "aaa"   # 如果name1不存在则创建,如果存在则覆盖,并设置10秒过期,    具有原子性。
    setnx name2 bbb        # 如果不存在这个key则创建成功并返回1,否则返回0
    mset k1 v1 k2 v2 k3 v3 # 批量设置多个k-v
    mget k1 k2 k3          # 批量返回相应key对应的value
    msetnx k1 v1 k4 v4     # 批量不存在时设置,具有原子性,如此时k1存在但k4不存在,依旧设置失败返回0
    set user:1 {name:liuyu,age:10} # 设置一个对象
    mset user:1:name liuyu user:1:age 10 # 效果同上
    getset name ccc        # 先get再set,不存在时返回nil,但set依旧生效,存在则覆盖 

    List(列表)

    lpush list one   # 往list左侧插入值
    lrange list 0 -1  # 返回list中所有值
    rpush list four   # 往右侧插入值
    lpop list       # 移除list左侧元素,并返回该元素
    rpop list       # 移除list右侧元素,并返回该元素
    lindex list 0    # 获取list中指定下标为0的值
    llen list       # 返回list的长度
    lrem list 1 value  # 移除list中指定个数的value值
    ltrim list 1 2   # 截断list,保留指定下标的值
    rpoplpush list hello # 从list右侧移除一个元素并返回,且将该元素插入list
    exists list       # 判断list是否存在,存在返回1,不存在返回0
    lset list 0 hello   # 修改列表指定位置的值,需要列表和该位置不为空,否则报错
    linsert list v1 before v0  # 往list列表的v0前边插入v1
    linsert list v1 after v2  # 往list列表的v2后边插入v1

    Set(集合)

    无序且不重复。

    应用:共同关注,二度好友(六度分割理论)

    sadd myset "hello"    # set集合中添加元素
    smembers myset        # 查看指定set的所有值
    sismember myset hello # 判断某一个值是不是存在set集合中(如果存在,返回1,否则返回0)
    scard myset              # 获取set集合中的元素个数
    srem myset "hello"      # 移除set集合中的指定元素
    srandmember myset      # 随机抽选出一个元素
    spop myset              # 随机删除一些set集合中的元素
    smove myset myset2 "hello" # 将一个指定的值,移动到另一个set集合
    sdiff key1 key2       # 求差集
    sinter key1 key2      # 求交集(比如用于查找共同好友)
    sunion key1 key2      # 求并集

    Hash(哈希)

    应用:更适合对象的存储,经常变动的信息

    hset myhash field1 liuyu    # set一个具体的key-value
    hget myhash field1            # 获取一个字段值
    hmset myhash field1 hello field2 world # set多个key-value
    hmget myhash field1 field2  # 获取多个字段值
    hgetall myhash                 # 获取全部数据(包括key)
    hdel myhash field1            # 删除hash指定的key,对应的value也就没有了
    hlen myhash                 # 获取hash表的字段数量
    hexists myhash field1         # 判断hash中指定字段是否存在
    hkeys myhash                 # 只获得所有field
    hvals myhash                 # 只获得所有value
    hincrby myhash field3 1        # 指定增量
    hsetnx myhash field4 hello  # 如果存在则不能设置

    Zset(有序集合)

    应用:数据排序,排行榜,带权重判断

    zadd myset 1 one        # 添加一个值
    zrange myset 0 -1        # 查看集合元素
    zrangebyscore myset -inf +inf #从小到大排序(-inf为无限小,+inf为无限大)
    zrevrange salary 0 -1   # 从大到小排序
    zrem myset liuyu         # 移除有序集合中的指定元素
    zcard myset                # 获取有序集合中的个数 
    zcount myset 1 3        # 获取指定区间的元素个数

     

  • 相关阅读:
    一名3年工作经验的程序员面试分享应该具备的技能
    [activiti] Activiti 5.18 的Mybatis版本依赖问题
    [java] JVM监控与调优
    [mysql] mysqldump 导出数据库表
    【extjs】 extjs5 Ext.grid.Panel 搜索示例
    [tomcat] tomcat+nginx 负载均衡配置
    [mysql] mysql explain 使用
    Oracle自用脚本(持续更新)
    Mysql 简单问题汇总(持续更新)
    开源项目导入eclipse的一般步骤
  • 原文地址:https://www.cnblogs.com/liuyu666/p/14011112.html
Copyright © 2011-2022 走看看