码迷,mamicode.com
首页 > 其他好文 > 详细

redis

时间:2019-04-01 01:01:36      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:获取   rgs   解压   quit   内存   member   space   缓存   结构   

  • Redis是一个key-value的nosql产品,与Memcached有些类似,但它存储的value类型相对更加丰富,包括string(字符串)、list(链表)、set(集合)、zset(sorted set有序集合)和hasg。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把内存中的数据写入到硬盘(被称为数据持久化),同时由于redis支持的value类型众多,也被称为结构化的nosql数据库。
  • NoSQL产品:redis、memcache、mongoDB等特点
    • 一般不使用严格的表结构(行和列的组合形成一个表)
    • 数据的查询一般都不再使用sql查询
  • 在Mac的安装Redis
    • 官网下载https://redis.io/download
    • 将解压后的文件放入/usr/local/控制台
      • 进入文件夹:cd /usr/local/redis-5.0.4
      • 编译测试:sudo make test
      • 编译安装:sudo make install
      • 启动redis:redis-server
      • 关闭redis:redis-cli shutdown
      • 启动客户端:redis-cli
      • 关闭客户端:quit
      • 在客户端里清屏:clear
  • Redis的string类型
    • 简单例子
      127.0.0.1:6379> set username admin
      OK
      127.0.0.1:6379> get username
      "admin"
      127.0.0.1:6379> 

       

    • incr属性,会向指定key值自增1
      127.0.0.1:6379> set id 1
      OK
      127.0.0.1:6379> get id
      "1"
      127.0.0.1:6379> incr id
      (integer) 2
      127.0.0.1:6379> get id
      "2"

       

    • decr属性,会向指定key值自减1
      127.0.0.1:6379> set id 1
      OK
      127.0.0.1:6379> get id
      "1"
      127.0.0.1:6379> incr id
      (integer) 2
      127.0.0.1:6379> get id
      "2"
      127.0.0.1:6379> decr id
      (integer) 1
      127.0.0.1:6379> 

       

    • incrby属性,会向指定key值自增指定数
      127.0.0.1:6379> get id
      "1"
      127.0.0.1:6379> incrby id 19
      (integer) 20
      127.0.0.1:6379> get id

       

    • decrby属性,会向指定key值自减指定数
      127.0.0.1:6379> get id
      "20"
      127.0.0.1:6379> decrby id 19
      (integer) 1
      127.0.0.1:6379> get id
      "1"

       

    • keys属性,获取redis全部的key
      127.0.0.1:6379> keys * 
      1) "username"
      2) "id"

       

    • key如何设置
      127.0.0.1:6379> set user:id:1:username admin
      OK
      127.0.0.1:6379> set user:id:1:password admin
      OK
      127.0.0.1:6379> set user:id:1:phone 131xx1212
      OK
      127.0.0.1:6379> set user:id:1:email 3xx@qq.com
      OK
      127.0.0.1:6379> set user:id:1:register_time 2019-01-02 
      OK
      127.0.0.1:6379> set user:id:1:root 0
      OK

       

    • key如何查看
      127.0.0.1:6379> keys user:id:1*
      1) "user:id:1:password"
      2) "user:id:1:username"
      127.0.0.1:6379> get user:id:1:username
      "admin"

       

  • Redis的hash类型
    • 简单例子
      127.0.0.1:6379> hset user username admin
      (integer) 1
      127.0.0.1:6379> hget user username
      "admin"

       

    • 设置及获取多个hash值
      127.0.0.1:6379> hmset user password admin phone 13xxx email 3xx@qq.com
      OK
      127.0.0.1:6379> hgetall user
      1) "username"
      2) "admin"
      3) "password"
      4) "admin"
      5) "phone"
      6) "13xxx
      7) "email"
      8) "3xx@qq.com"

       

  • Redis的list类型
    • lpush属性,向链表的头部放入数据
      127.0.0.1:6379> lpush link1 A
      (integer) 1
      127.0.0.1:6379> lpush link1 B
      (integer) 2
      127.0.0.1:6379> lpush link1 C
      (integer) 3
      127.0.0.1:6379> 

       

    • rpush属性,向链表的尾部放入数据
      127.0.0.1:6379> lpush link1 A
      (integer) 1
      127.0.0.1:6379> lpush link1 B
      (integer) 2
      127.0.0.1:6379> lpush link1 C
      (integer) 3
      127.0.0.1:6379> keys link1

       

    • lpop属性,移除头元素
      127.0.0.1:6379> lrange link1 0 -1
      1) "C"
      2) "B"
      3) "A"
      127.0.0.1:6379> loop link1
      (error) ERR unknown command `loop`, with args beginning with: `link1`, 
      127.0.0.1:6379> lpop link1
      "C"
      127.0.0.1:6379> lrange link1 0 -1
      1) "B"
      2) "A"
      127.0.0.1:6379> 

       

    • rpop属性,移除尾元素
      127.0.0.1:6379> lrange link1 0 -1
      1) "B"
      2) "A"
      127.0.0.1:6379> rpop link1
      "A"
      127.0.0.1:6379> lrange link1 0 -1
      1) "B"

       

    • 使用场景
      • 后台统计最近登录的10个用户
  • Redis的set类型
    • set类型被称为集合类型
    • 集合是数学里面常见的一个概念,可以理解是一类数据的集合
    • 特点
      • 无序性:集合里面的数据是没有顺序之分
      • 唯一性:集合里面的数据彼此是不能重复
      • 确定性:集合里面的数据的个数是确定
    • 集合常见运算
      • 集合A(1,2)、集合B(2,3)
      • 交集:集合公共的部分;例如上面集合A和集合B的交集是2
      • 并集:集合全部的部分;例如上面集合A和集合B的并集是1,2,3
      • 差集:A-B代表的含义是元素在A里面出现,但是不能在B里面出现,例如上面集合A-集合B结果是1  
    • sadd属性,向集合里面添加元素
      127.0.0.1:6379> sadd set1 1
      (integer) 1
      127.0.0.1:6379> sadd set1 2
      (integer) 1
      127.0.0.1:6379> sadd set1 3
      (integer) 1

       

    • smenbers属性,获取集合里面的元素
      127.0.0.1:6379> smembers set1
      1) "1"
      2) "2"
      3) "3"

       

    • srem属性,移除指定元素
      127.0.0.1:6379> smembers set1
      1) "1"
      2) "2"
      3) "3"
      127.0.0.1:6379> srem set1 2
      (integer) 1
      127.0.0.1:6379> smembers set1
      1) "1"
      2) "3"
      127.0.0.1:6379> 

       

    • spop属性,随机的弹出集合里面的某个元素
      127.0.0.1:6379> spop set1
      "3"
      127.0.0.1:6379> spop set1
      "1"

       

    • sinter属性,交集
    • sunion属性,并集
    • sdiff属性,差集
    • 应用场景:好友关系展示,例如好友推荐、共同好友
  • Redis的zset类型
    • zset类型被称为有序集合,
    • 需要给集合里面的每个元素一个排序的权重。例如:按照1-9或者a-z排序
    • zadd:添加元素
      127.0.0.1:6379> zadd class:phpRank 5 mark
      (integer) 1

       

    • arange:获取集合元素
      127.0.0.1:6379> zrange class:phpRank 0 -1
      1) "mark"

       

    • withscores:获取集合内容的时候,显示权重信息
      127.0.0.1:6379> zrange class:phpRank 0 -1 withscores
      1) "mark"
      2) "5"

       

redis

标签:获取   rgs   解压   quit   内存   member   space   缓存   结构   

原文地址:https://www.cnblogs.com/fatRabbit-/p/10633996.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!