Redis原理分享,从使用到会用( 二 )


因为普通的key->value的模式就像当与一对一的模式 , 如果你有其他的需求那么你知道在对应的value中做标记达到你需要的存储结构 。同时效率也会很低的 。但往往绝大多数开发者都不会提前的构思 , 直接动手写 , 如果有经验的工程师还好 , 因为别人知道书写的方向 , 但初学者就是会不断的碰壁 , 碰壁之后自己也没有任何的积累过程 。后面遇到同样的问题 , 开发效率也不会高到哪里去 。
3、价值产生不一样
任何一个人都是喜欢优秀的人 , 如果你做的事情都是满大街都有的东西 , 没得自己的方法与经验 。那你的价值如何体现呢?
比如:几十年前的时候 , 通讯不发达 , 那时候有一个手机 , 可能是成功的人了 。就在于绝大数人都没有手机这个东西 。“物以稀为贵”就是这个理
如果问到你对Redis的使用 , 张口闭口就是缓存 , 而不在理会其它的数据类型 , 用于解决业务场景中的问题 , 这样的情况下如何证明自己熟练Redis呢?同时对于Redis的优化和高级、底层这些内容没了解 , 如何应对难度的问题呢?
总是说自己不会 , 那有过深入的研究准备吗?一切都停留在初级的阶段不打破 , 何来提升 。因为这才是固之根本所在 。

Redis原理分享,从使用到会用

文章插图
 
如何更好的使用Redis一、数据结构不将就 , 好钢用在刀刃上
使用好Redis的第一步 , 需要对Redis的数据方式有全新的认识 。认识每个数据类型的结构特点 。同数据结构的组成上对应到业务数据存储上 , 在由业务数据特点对应到所适合的数据类型有那些 。有时候选择好工具后 , 会事半功倍 。
以下就是Redis的5大基础类型特点:
Redis原理分享,从使用到会用

文章插图
 
1、String 可以包含任何数据,比如jpg图片或者序列化的对象,一个键最大能存储512M 。
常用场景:分布式session会话、计数器、接口限速、分布式锁等 。
特点:对于数字递增处理、字符串处理都可以 , 因为它是Kye->Value关系的结构 。就是相 当于对一个key的描述 , 前提是要找好key属于要准备操作什么数据类型 。
常用命令:
SET key valueGET keyMSET key1 value1 [key2 value2]MGET key1 key2INCR keyDECR keySETNX key value #只有key 不存在时 , 才设置key的值
Redis原理分享,从使用到会用

文章插图
 
2、Hash 键值对集合 , 即编程语言中的Map类型 。适合存储对象 , 并且可以像数据库中update一个属性一样只修改某一项属性值 。
常用场景:存储、读取、修改用户属性、购物车等
特点:Hash的结构类似于与字典结构 , 有一个key指定名称 , value用于描述这个可以的信息 , 一般用于描述对象的基本信息 。
例如:购物车里面商品ID、商品数量、用户ID、销量、关注等这些信息都算是购物车需要的信息结构 。采用它灵活性是非常高的
常用命令:
HSET%20key%20field%20valueHGET%20key%20fieldHGETALL%20keyHMSET%20key%20field1%20value1%20[field2%20value2]HMGET%20key%20field1%20[filed2]
Redis原理分享,从使用到会用

文章插图
 
3、List 链表(双向链表) 。存储数据的特点犹如一个有序列表的形式 , 由左、右边可插入数据到其中 。
常用场景:最新消息排行等功能、消息队列、评论列表、令牌桶算法等 。
特点:List结构关键部分它是一个双向链表 , 可以双向的添加信息到列表中 , 使用的时候在以出队的方式取出 , 所以只要满足操作的条件即可 。同时列表也可做类似消息的排队处理操作 。
常用命令:
LPUSH key value1 [value2] #将一个或多个值插入到列表头部LPOP key #移出并获取列表的第一个元素RPUSH key value1 [value2] #在列表尾部添加一个或多个值RPOP key #移除并获取列表最后一个元素LREM key count value #移除列表元素LRANGE key start stop #获取列表指定范围内的元素
Redis原理分享,从使用到会用


推荐阅读