zoukankan      html  css  js  c++  java
  • Redis学习

    1,安装
    make
    cd src
    make install
     
    开启redis服务,如果要redis在后台运行,需要去redis.conf中配置daemonize 为yes
    redis-server /etc/redis.conf
    开启redis客户端
    redis-cli
    2,string字符串数据类型,键值对
    set 设置的时候会覆盖
    setnx 设置的时候不会覆盖
    set name gaoran设置键值对name=>gaoran,存在则覆盖
    setnx name gaoran,存在在返回0
    setex设置有效期
    setex haircolor 10 red,设置键值对haircolor=>color有效期为10秒
    mset批量设置多个值
    mset key1 gaoran1 key2 gaoran2
    msetnx用法同setnx
    getset设置key的值并返回key的旧值
    getrange获取键值的子字符串
    getrange name 0 5,返回0-4的字符,不包括下标5的字符
    mget批量获取
    mget key1 key2
    incr对键值自增,返回自增后的值,key不存在时会设置key,并认为原来的值为0
    incr key1
    incrby加指定值,key不存在时会设置key,并认为原来的值为0,正为+,负为减
    incrby key1 39
    decr自减
    decr key1
    decrby减指定值
    decrby key1 100
    append为字符串追加字符串
    append key1 .net ,为key后面追加.net
    strlen查看字符串长度
    strlen key1
    3,hash数据类型,是一个string类型的field和value的映射表,插入和删除的复杂度都是O(1)
    hset设置hash field为指定值
    hset user:001 name gaoran,user表内id为001的表,user:001代表一个表,还可以hset myhash name gaoran
    hsetnx类似于setnx,如果不存在则设置,如果存在就不设置,返回0
    hmset,批量设置
    hmset user:003 name gr age 20 set male
    hincrby增加指定值
    hincrby user:003 age 5,给age增加5
    hexists判断hash表里某个字段是否存在
    hexists user:003 name,返回1表示存在,0不存在
    hlen代表hash表里字段的数量
    hlen user:003
    hdel删除hash表里的某个字段,返回1代表删除成功
    hdel user:003 sex
    hkeys返回hash表里的所有字段
    hkeys user:003
    hvals返回hash表里的所有value
    hvals user:003
    hgetall获取hash表里的所有key和value
    hgetall user:003
    4,list类型,是一个链表结构,主要功能是push、pop、获取一个范围的所有值等等,list就是每个子元素都是string类型的双向链表,我们可以使用push、pop操作从链表的头部或尾部添加、删除元素,这样list既可以作为栈,又可以作为队列,栈(先入后出filo)一头进一头出,队列(先入先出fifo)一头进另一头出
    lpush从头压入元素,返回list里的元素个数
    lpush mylist hello
    lpop从头部取出元素,返回取出的元素
    lpop mylist
    lrange mylist 0 -1从头部的第一个元素取到最后一个元素
    rpush从尾部压入元素,返回list里的元素个数
    rpush mylist gaoran
    rpop 从尾部取出元素,返回取出的元素
    rpop mylist
    linsert在key对应的位置前或后插入元素,头的方向为前
    linsert mylist before hello gaoran1
    linsert mylist after hello gaoran2
    lset设置list指定下标元素的值
    lset mylist 0 "new world",将下标为0的元素的值设置为new world,返回ok代表成功
    lrem从list删除n个和value相同的元素,返回值代表删除掉的个数
    lrem mylist 1 hello,在mylist中删除1个hello
    ltrim保留指定下标的值范围内的数据
    ltrim mylist 1 2,保留下标1和2(包含)之内的所有元素,其他元素全部删除
    rpoplpush从第一个list的尾部移除元素并添加到第二个list的头部,返回插入的元素
    rpoplpush list mylist,将list尾部的元素删除,并且将此元素插入到mylist的头部
    lindex返回list中的index位置的元素
    lindex list 1,返回list中下标为1的元素,不存在则返回nil
    llen返回list的长度
    llen mylist
    5,set类型,他是string类型的无序集合。set是通过hash table实现的,添加、删除和查找的复杂度都是O(1)。对集合我们可以取并集、交集、差集。可以实现sns的好友推荐和blog中的tag功能。
    sadd向set中添加元素(若干个),后面接多少个就添加多少个(返回添加的元素个数),返回1表示添加成功,返回0表示添加失败,如果元素中元素已存在,则添加失败
    sadd myset ‘hello’ world 1 2 3
    smembers,查看集合中的所有元素
    smembers myset
    srem,删除集合中的一个元素,成功返回1,失败返回0
    srem myset hello
    spop,从集合中随机弹出(删除)一个元素
    spop myset
    sdiff,返回两个集合的差集,返回在第一个集合但不在第二个集合中的所有元素
    sdiff set myset
    sdiffstore,将差集存到一个集合中
    sdiffstore set1 set myset,将set和myset的差集存入到set1
    sinterstore,将交集存入到一个集合中
    sinterstore set1 set myset
    sunion 返回集合的并集
    sunion set set1
    sunionstore,将并集存入到一个集合中
    sunioinstore set1 set myset
    smove,将第一个集合中的一个元素移除,添加到第二个集合中
    smove set set1 hello,将set中的hello元素移动到set1中
    scard,返回集合中的元素个数
    scard set1
    sismember,判断某个元素是否为集合中的一个元素,返回1代表是,返回0代表不是
    sismember set1 hello
    srandmember,随机返回集合的一个元素,但是不删除元素,和spop不同,spop是随机删除一个元素
    srandmember set1
    6,sorted sets类型,有序集合,是set的一个升级版本,在set的基础上增加了一个顺序熟悉,zset代表有序集合,可以理解为有两列的mysql表,一列存value,一列存顺序。
    zadd向有序集合中添加数据,返回1说明添加成功,返回0说明添加失败,但是会更新顺序
    zadd slist 1 hello ,1为顺序,hello为value
    zrange,返回集合中的元素,加上withscores会同时返回顺序值
    zrange slist 0 -1 withscores
    zrem,删除集合中的元素
    zrem slist world,删除slist中值为world的元素,其他元素的值和顺序值不变
     
  • 相关阅读:
    VUE可随意拖动的弹窗组件
    入园仪式
    Node启动https服务器
    《高性能javascript》阅读摘要
    浏览器HTTP缓存机制
    使用nightwatch进行E2E测试中文教程
    Puppeteer的入门教程和实践
    Spring AOP 笔记
    ApplicationContext国际化的支持
    Spring ApplicationContext中的”事件传递“笔记
  • 原文地址:https://www.cnblogs.com/xiongji/p/3633721.html
Copyright © 2011-2022 走看看