zoukankan      html  css  js  c++  java
  • redis--->常用数据类型

    set key1 v1        设置key1的值为V1
    
    get key1             获得key
    
    keys *                查看全部的key
    
    append key "hello"  追加字符串,如果不存在就相当于setkey
    
    strlen key1         获取字符串长度
    
    set views 0         设置初始浏览量为0
    
    incr  views          自增一
    decr  views         自减一
    
    incrby  views 10  设置自增步长
    decrby  views 5   设置自减步长

    常用命令(String数据类型)

    flushdb          清空数据库
    
    getrange  key1 0 -1    获取key1全部字符串
    getrange  key1 0 3      获取0,123
    
    
    set key2 abcdefg
    setrange key2 1 **   替换指定位置开始的字符串
    get key2
    结果:a**defg
    
    设置key3的值为hello过期时间为30S
    setex key3 30 hello
    
    setnx mykey “redis”
    setnx mykey “mongodb”     如果key存在创建失败,如果不存在创建

    同时插入、获取多条数据

    mset k1 viv k2 v2 k3 v3    同时设置多个值
    
    mget k1 k2 k3    同时获取多个值
    
    msetnx k1 v1 k4 v4   原子性要么全部成功,要么全部失败

    存储对象

    set  user:1 {name:zhangsan,age:3}
    这里的id是一个巧妙地设计user:id:field
    
    mset user:1:name  zhangsan user:1:age 2
    mget user:1:name  user:1:age
    “张三”
    “2”
    
    getset        先get然后set
    
    getset db redis     如果不存在值则返回nil
    get db
    "redis"
    
    getset db mongodb   如果存在值,获取原来的值并设置新的值
    "redis"
    get   db
    "mongodb"

    List数据类型

    L是队头,R是队尾
    Lpush list one
    Lpush list two
    Lpush list there
    栈型数据结构先进后出
    lrange list 0 -1
    there 
    two
    one
    
    
    Rpush list 1        头插法
    lrange list 0 -1
    there 
    two
    one
    1
    
    lpop list    移除列表的第一个
    rpop list    移除列表的最后一个
    
    lindex list 1     通过下标获取某一个值
    lindex list 0
    
    llen list  获取链表的长度

    删除指定的一个值

    移除指定的值
    lrem list 1 one     //移除list中的一个one值

    list截取

    ltrim  mylist 1 2       //通过下标截取指定的长度

    移除列表的最后一个元素,添加到另一个list中

    rpoplpush   mylist   myotherlist

    判断当前列表是否存在

    EXISTS   list

    lset 将数组指定下标的值改为另一个值

    lset  list 0 item       如果数组不存在就会报错

    在指定字符串插入到某个元素的前面或后面

    linsert  mylist before "world"  "other"   //在world前插入other

    总结:

    list实际上是一个链表,before   node after

    如果移除了所有值,空链表也代表不存在

    如果key不存在,创建新的链表,如果存在新增内容

    在两边插入或改动值效率最高

    set

    set中的元素是不可以重复的

    添加元素

    sadd  myset  "001"
    sadd  myset  "002"
    
    
    smembers  myset      //查看全部元素
    
    sismember myset hello   //set is member set中是否包含
    
    srem myset hello       //set remove 移除set的某一个元素
    
    srandmember  myset          //随机抽选出一个元素
    srandmember  myset 2     //随机抽取出指定个数的元素
     
    spop myset             //随机删除一些set集合中的元素
    
    smove  myset  myset2  "hello"    //在myset中移除hello到myset2

    set  的交集和并集

    sdiff   key1  key2    //以一为参考2没有的
    
    sinter  key1  key2     //交集    共同关注
    
    sunion  key1  key2    //并集    两个人全部元素

    推荐好友,共同关注

    hash哈希

    map集合,key->map,这时候值是一个map集合

    和string类型没啥大区别

    hset  myhash field1 hello      //插入一个具体的key-value
    hget  myhash field1             //获取一个字段值
    
    hmset  myhash field1 qqq field2 www       //set多个key-value
    hmget  myhash field1 field2               //获取多个字段
    
    
    hgetall   myhash      //获取全部的key-value
    
    hdel  myhash field1    //删除指定hash的key字段
    
    hlen  myhash      //获取hash的字段数量
    
    hexists   myhash field1   //判断hash中指定的字段是否存在
    
    hkeys myhash   //获取全部的key
    hvals  myhash   //获取全部的value
    
    hincrby myhash field3 1    //每次自增一
    hsetnx myhash field4 hello  //如果存在则设置,不存在则不设置

    hash适合存储变更的信息,尤其是用户信息,hash更适合对象的存储

    Zset有序集合

    zadd myset 1 one        //添加一个值
    
    zadd myset   2  two   3  three        //添加多个值
    
    zrange   myset  0 -1       //查看全部

    排序

    zadd salary 2500 xiaohong
    zadd salary 5000 zhangsan
    zadd salary 500   springxian
    // 添加三个用户
    zrangebyscore salary -inf  +inf      //显示所有用户从小到到排序
    zrevrange  salary  0 -1              //从大到小排序
    
    zrangebyscore salary -inf   2500    //显示小于2500的所有员工
    
    zrange  salary 0 -1   //查询所有
    zrem   salary  xiaohong   //删除一个
    
    zcount myset 1 3    //计算区间的成员数量

    班级成绩排序,排行榜 Top  *

  • 相关阅读:
    CART分类回归树算法
    决策分类树算法之ID3,C4.5算法系列
    break case
    Linux下创建C函数库
    邮件服务
    mysql 语句 GROUP_CONCAT
    python的__mro__与__slot__
    mod_wsgi 的两种模式
    看一看
    【转贴】Linux下MySQL 5.5的修改字符集编码为UTF8(彻底解决中文乱码问题)
  • 原文地址:https://www.cnblogs.com/springxian/p/14453932.html
Copyright © 2011-2022 走看看