Redis基本操作

端口:0-65535

一、Redis入门   NOSQL
  1、redis前世今生,redis是什么?
         开源,学习,定制开发
         C语言,5万行代码/2.3w line
         高性能,多功能 10万并发   QPS  10万
         单线程  - 单台部署多台,对CPU充分利用
         基于key-Value的存储服务系统
         支持多种数据结构
            string (常用), hash , lists, set, hset  

       bitmap, geo, hyperloglog, stream      

  2、谁在使用redis?
         github, twitter,stackoverflow,weibo,BAT

       典型应用场景
       
       2.1   缓存
       2.2   计数器
       2.3   消息队列 -- 简单消息队列  lists
       2.4   排行榜  -- 有序集合
       2.5   社交网络 -- 粉丝数,关注数,共同关注,时间轴等等
       2.6   实时系统  -- 过滤器用Bitmap

  3、Redis特性
       3.1 特性之 -- 速度快,高性能 (单线程,10万并发)
       3.2 特性之 -- 持久化 RDB,AOF
       3.3 特性之 -- 支持多数据类型 ( string,hash,list,set,storeSet,stream)
       3.4 特性之 -- 多语言客户端
       3.5 特性之 -- 功能丰富 (pub/sub,慢查询,pipeline,bitmap,hyperloglog,geo)
       3.6 特性之 -- 简单
       3.7 特性之 -- 复制
       3.8 特性之 -- 高可用分布式(sentinel,cluster)

  4、安装和配置
        1、默认配置启动
        2、配置文件启动
              -- daemoize   
              -- port
              -- logfile
              -- dir
             RDB ,AOF,Slow log, MaxMemory等配置

        3、动态参数启动  redis-servel  --port 6380


二、Redis的API数据类型操作
      1、数据结构和内部编码
      2、单线程
      3、字符串
      4、hash
      5、list列表
      6、set 集合
      7、zset 有序集合

三、Redis的其他功能
    1、慢查询
    2、pipeline
    3、发布订阅模式
    4、bitmap
    5、hyperloglog
    6、geo

四、Redis持久化
       RDB
       AOF
       运维

五、Redis复制原理和优化


六、Redis sentinel 高可用
      作用:监控,故障转移,多机器
       1、主从复制问题
       2、

七、Redis cluster 高可用

八、缓存设计与优化

九、Redis云平台


##########################################
五大数据类型总结
##########################################

第一部分:redis的基础,
       (1)redis基础,安装配置
       (2)redis的常见数据类型和使用场景
       (3)字符串string的使用操作
                  set ,get ,  mset, mget ( geMultiple) ,  
                  incr,  incrby ,  decr, decrby,  
                  delete ,   expire,  exites , setNx
                  append ,  substr

          练习: 1、广告列表的设置 ,   
                      2、手机验证码的设置
         总结

第二部分:list , 
    
     (1)list 基础数据结构
                双向链表
     (2)list操作命令
                lpush ,  lpop , llen,  lrange ,  ltrim
                
            练习:商品秒杀队列
       
      
       总结

第三部分:hash使用操作 

        (1)hash 基础数据结构,哈希表,类关联数组
        (2)操作命令
                 hset("key","member-key","value");
                 hget("key","member-key");
                 hkeys("key")
                 hvals("key")
                 hgetall("key")
                 hlen("key")
                 hdel("key","member-key")
                 del("key")
                 hsetNx("key","member-key","value")
                 hExists("key","member-key")
                 hincyby("key","member-key",5)
   
             批量设置
                  hmset("key",["name"=>"lisi","pw"=>123456,"age"=>20]);  ( 常用)
                  hmget("key",['name','age'])
                  hgetall("key")


第四部分  set(列表)的使用操作
       (3) set数据结构
            一组string

     (4)set操作命令
               sadd("key","member") ,   //添加成员
               srem("key","member") ,  //移除成员
               smembers("key")  //获取成员列表
               sismember("key","member")     //判断元素是否是set的成员       
               scard("key")     //查看集合中成员的数量
               spop("key")    //移除并返回集合中的一个随机元素(返回被移除的元素)  抽奖


              sinter('set', 'set2'))   //返回集合的交集,不会保存
              sinterstore('output', 'set', 'set2');   //执行交集操作 并结果放到一个集合中
              
             sunion('set', 'set2')) //返回集合的并集
             sunionstore('output', 'set', 'set2');  //执行并集操作 并结果放到一个集合中

              sdiff('set', 'set2')  //返回集合的差集

             sdiffstore('output', 'set', 'set2');  //执行差集操作 并结果放到一个集合中

        练 习:粉丝列表,关注列表

第五部分   zset(有序列表)使用操作

    1、zset数据结构,string类型集合,每个元素增加权重(score)
  
    2、应用场景 : 排行榜,延时消息队列
    
   3、操作命令
        zadd( "key", score, member)  
        zrange("key",0,-1,['withscores'=>true]);    //正序按下标
        zrangebyscore("key", 10,20,['withscores'=>true]);//按照权重值正序排列
        zrevrange('key', 1, 2,['withscores'=>true] );   //倒序按下标
        zrevrangebyscore('key', 20, 10,['withscores'=>true] );   //按权重值的倒序排列
        zcard('key')   //统计元素数量
        zcount('set', 30, 50) 返回集合中介于min和max之间的值的个数
        zscore('key', 'dog') //元素的得分
        zrem('set', 'cat');    //删除成员
        zincrby('set', 2, 'dog');  //特定元素增加权重,  无自减


练习:
      文章(主播)点赞,关注  
      文章点赞量的排行榜 TOP10 

    排行榜:
        zincrby('set', 2, 'dog');  //特定元素增加权重,  无自减
        zrevrange('key', 0, 9,['withscores'=>true] );   //倒序按下标

    点赞/关注/收藏/粉丝/订阅
          sadd("key","member") ,   //添加成员
          smembers("key")  //获取成员列表
          sismember("key","member")     //判断元素是否是set的成员 
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值