zoukankan      html  css  js  c++  java
  • redis(redis概念,运用场景,如何操作基本数据类型)

    1. 什么是redis:Nosql一种缓存数据库
    2. redis可以干什么:redis可以减轻对数据库的请求压力
      如果不使用缓存:客服端->控制层->业务层->dao层
      使用缓存:客服端->控制层->业务层->redis缓存 1:如果缓存中有数据,则直接返回缓存数据,则不需要dao层jidbc连接数据库 2:如果没有则在进行数据库的连接,查询数据,将查询出来的数据在放到缓存之中。这样可以减轻数据库访问的压力(访问缓存的速度 优于访问数据库的速度)

       

    3. redis使用场景:
      1:token的生成(注册登录的时候,将生成的token放到redis之中)客服端每次请求的时候 只需要将前端传过来的token和后端保存到redis的token相比较,相同则放行,不需要在将token保存到数据库之中
      2:session共享
      3:分布式锁
      4:自增id
      5:验证码(redis可以设置过期的时间)

       redis内置的数据类型有 5种:字符串String、哈希Hash、列表List、集合Set、有序集合ZSet

    1.   string 类型是 Redis 最基本的数据类型,string 类型的值最大能存储 512MB,string 类型是二进制安全的。意思是 redis 的 string 可以包含任何数据。比如jpg图片或者序列化的对象。存值:set key value ;取值:get key 
      示例:
    2. Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)。hash存值的方式比String 稍微要复杂一点存值:hmset key field value [field value ...] ;取值:hget key field

      示例:
          存值:hmset myhash key1 value1 key2 value2
          取值:hget myhash key2

       
        获取key的所有值(key-value) :hgetall myhash

       

    3.  Redis 操作list(可重复)列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。

      示例:
         存值:

         取值:

      取值 LRANGE key  开始索引 最后索引

    4.  redis操作 set(不可重复)Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。Redis 中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。集合中最大的成员数为 232 - 1个集合可存储40多亿个成员)。存值:sadd key value 取值所有:smembers key 
      示例:
       
      存值

        取值:

    5.  redis 操作sort set 有序集合 Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。有序集合的成员是唯一的,但分数(score)却可以重复。集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。 集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。
      存值:

      取值:

      添加的时候 可以给每个值设置一个分数 取值的时候 可以根据索引 取一个范围值的值

    6. 简单的记录一下redis的场景,概念  和操作5种数据类型(参考资料:http://www.runoob.com/redis/redis-sorted-sets.html)
  • 相关阅读:
    设计模式漫谈之原型模式
    Sql语法高级应用之六:如何在Sql语句中如何使用TRY...CATCH
    Sql语法高级应用之五:使用存储过程实现对明细多层次统计
    Sql语法高级应用之四:使用视图实现多表联合数据明细
    Sql语法高级应用之三:存储过程
    Sql语法高级应用之二:视图
    Sql语法高级应用之一:使用sql语句如何实现不同的角色看到不同的数据
    使用WebService调用第三方服务
    关于数据迁移的一些经验总结
    如何使用jQuery实现根据不同IP显示不同的内容
  • 原文地址:https://www.cnblogs.com/920913cheng/p/10370873.html
Copyright © 2011-2022 走看看