设为首页 收藏本站
查看: 904|回复: 0

[经验分享] 沙沙沙沙、半城烟

[复制链接]

尚未签到

发表于 2017-12-21 13:59:00 | 显示全部楼层 |阅读模式
  笔者最初接触Redis是因为了解了一些nosql方面的知识,觉得nosql是一个很有意思的方面。像其中的mongodb,redis等等。当初也没有深入的去了解Redis,直到自己前段时间在写一个web项目的时候需要用到缓存来进行性能优化我才仔细的来学习Redis。下面我就来说说我自己在学习Redis过程中的一些心得。
  Redis是一个nosql数据库,它采用字典结构以键值对的形式将数据全部存储在内存中所以它读写的速度很快,因此很多项目用Redis做缓存用,我也是基于这个想法来学习Redis的。 Redis支持的数据类型分别是字符串(string)、散列(hash)、列表(list)、集合(set)、有序集合(sorted set)这五种。接下来我将仔细介绍下这几种数据结构的用法和对应的命令。
  字符串类型:字符串类型是Redis中最基本的数据类型,是其他四种数据类型的基础。它能存储任何形式的字符串(二进制数据、Json对象、图片等),它的最大数据容量是512MB。
  常用命令:
  set key value      //赋值
  get key                //取值
  keys *                 //查看所有的键
  exists key            //判断某个键是否存在
  del key               //删除一个键
  type key            //获取键的类型
  incr/decr key     //给键增加/减少一
  incrby/decrby key increment/decrement     //给键增加/减少一个整数
  incrbyfloat key increment        //增加浮点数
  strlen key                             //返回键的长度
  mset/mget                          //同时设置或者获取多个值
  
  散列类型:散列类型的键值是一种字典结构,存储了字段和字段值的映射。但是字段值只能是字符串,不支持其他数据类型(Redis的其他数据类型也都不支持嵌套,只能是字符串。)。
  常用命令:
  hset   key  field value               //赋值。不区分插入和更新操作,当键不存在是会自动建立。
  hget   key  field                       //取值
  hgetall key                              //取出所有的值
  hexists key field                      //判断字段是否存在
  hsetnx key field value              //字段不存在时便赋值
  hincrby key field increment        //增加指定的数字,没有自增
  hdel key field                            //删除一个或者多个字段,返回被删除的个数               
  hkeys key                                 //只获取字段名
  hvals  key                                 //只获取字段值
  hlen   key                                 //只获取字段数量
  列表类型:列表是个有序的字符串,向两端添加或者删除元素。它是使用双向链表实现的。
  常用命令:
  lpush/rpush  list value                         //向左/右增加元素
  lpop/rpop  list                                     //从左/右弹出元素
  llen list                                              //获列表的元素个数
  lrange list start stop                           //获得列表片段(左边索引为0,如果为负则从右边开始)   lrange  key -1 0 则为获取所有的元素
  lrem list  count value                          //删除列表中前count个值为value的元素
  rpoplpush oldlist newlist                     //将原列表的值放入新列表
  集合类型:集合中的元素都是不同的,而且没有顺序。它可以求交集、并集、差集。
  常用命令:
  sadd set member                                  //增加一个元素给集合(没有则创建)
  srem set member                                 //删除一个或多个元素
  smembers set                                     //返回集合中所有的元素
  sismember set member                        //判断元素是否存在于集合中
  sdiff setA  setB                                    //求差集
  sinter setA  setB                                  //求交集
  sunion  setA setB                                 //求并集
  sdiffstore  destination setA setB             //将求到的差集结果保存在destination中
  srandmember  set  num                        //随机获取一个或多个元素(看后面加的参数)            
  spop set                                              //从集合中随机弹出一个元素
  有序集合:和集合相比给每个元素都关联了个分数。我们除了可以进行集合的操作外,还可以获取分数最高或者最低的几个元素。
  常用命令:
  zadd key score member                         //加入元素和对应分数,支持整数和双精度浮点,如果存在则修改。其中+inf和-inf代表正负无穷大
  zscore  key  member                             //获得元素的分数
  zrange/zrevrange  key start stop             //按分数从顺序/逆序排序
  zrangebyscore  key  min (max                //返回min和max之间的数左括号代表不包含
  zincrby key increment member              //给元素增加值
  zcount key min max                             //获取指定范围元素的个数
  zcard  key                                           //获取集合中元素的数量
  zrem key member                               //删除元素
  zremrangebyrank  key start stop           //按排名范围删除元素
  zremrangebyscore  key min max           //删除分数范围值
  zrank key member                               //元素按分数大小排名
  zrevrank key member                          //从大到小排名
  结语:个人学习总结有遗漏错误的地方还希望大家留言斧正,多多交流一起学习。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-426460-1-1.html 上篇帖子: 170222、使用Spring Session和Redis解决分布式Session跨域共享问题 下篇帖子: SpringBoot 中使用redis以及redisTemplate
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表