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

[经验分享] Redis 实践笔记1---基础知识

[复制链接]

尚未签到

发表于 2018-11-6 10:44:52 | 显示全部楼层 |阅读模式
  前言
  由于Redis的广泛使用,加上在项目中涉及到Redis,因此会根据自己的使用和学习,写一个Redis系列的博客,作为自己的笔记,同时也分享给大家。
  What is Redis ?
  看一下Redis的官网http://redis.io/对REDIS的描述:
  Redis is an open source, BSD licensed, advanced key-value cache and store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets,sorted sets, bitmaps and hyperloglogs.
  关键词:
  Redis,开源KEY/VALUE缓存系统,数据结构服务器,数据类型。
  install it and start it!
  安装redis,没有什么特殊之处,启动也很简单。
  如果解压之后,没有configure进行安装选项的指定,直接make && makeinstall进行安装的话,默认REDIS会安装至/usr/local/bin下。
命令说明./redis-server ./redis.conf我们可以把安装路径下的redis.conf拷贝至启动命令路径下。用于启动REDIS。  ./redis-cli
  ./redis-cli shutdown
REDIS客户端,可以连接和关闭redis。./redis-benchmarkREDIS性能测试。  启动后,观察端口占用情况:
[root@master bin]# ./redis-server ./redis.conf  
[root@master bin]# netstat -tnlp | grep redis
  
tcp        0      0 0.0.0.0:6379                0.0.0.0:*                   LISTEN      4508/redis-server *
  
tcp        0      0 :::6379                     :::*                        LISTEN      4508/redis-server *
  REDIS的默认启动端口就是 6379。
[root@master bin]# ./redis-cli  
127.0.0.1:6379> get name
  
(nil)
  
127.0.0.1:6379> set name zhangfengzhe
  
OK
  
127.0.0.1:6379> get name
  
"zhangfengzhe"
  Redis.conf
  可以浏览下Redis的配置文件,下面是一些入门配置选项。
配置说明daemonize yes启动redis是否以后台的方式启动。默认是no,那么一个XSHELL客户端启动REDIS后会阻塞,因此可以将配置改为yes.port 6379启动端口。bind 192.168.1.100REDIS的安全特性,可以允许指定IP客户端才能访问REDIS SERVER!logfile "/usr/local/bin/resin.runlog"指定REDIS的运行日志databases 16REDIS的数据是存储在内存中的,但是也是可以持久化到数据库中,并且REDIS将数据库的个数默认设置为16个,默认情况下是数据库0在使用,我们可以使用select进行切换。save 900 1REDIS将内存中的数据保存至数据库的策略。左边示例就是说,900S内有一个KEY发生变化,那么STORE至DB。支持多SAVE的策略。dbfilename dump.rdb  dir ./
数据库文件名称及存储路径appendonly yes  appendfilename "appendonly.aof"
  appendfsync everysec
REDIS的AOF机制:是否记录操作REDIS的每一个操作至AOF文件中。  数据类型
  相比Memcached只支持String类型的KEY/VALUE而言,Redis的数据类型很丰富,比如:String/List/Set/Sorted Set/Hash等。Redis所支持的类型很多,每一种类型的命令也不少,那么我们如何记忆,学习,使用呢?
  我的想法:理解REDIS每一种数据类型的特点 + 官方命令手册
  在http://redisdoc.com/ 有REDIS的每一个数据类型的命令列表,以及命令的使用方法说明。
数据类型说明以及一些命令String  字符串类型,也可以存储数字,以及任何可以序列化的数据,REDIS最大上限是1GB,远远大于MEMCACHED的限制。
  set/setnx/get/getset/mget/mset/msetnx/   
  【结尾是nx标示如果存在这个KEY才操作,m开头的标示批量操作】
  incr/incrby/decr/decrby
  【数字的原子性的增减】
  append/substr/strlen
  【追加、截取、长度】
List  本质上LIST的每一元素是STRING类型,并且LIST就是一个双向链表!
  可以堆栈,即先进后出;可以队列,即先进先出。
  lpush/rpush/lpop/rpop/blpop/brpop
  【b开头的标示是此命令的阻塞版本,虽然阻塞但是避免了轮询。】
  linsert 可以方便LIST进行非头尾的插入操作
  lrange/ltrim/lset/lrem
  【注意0代表第一个元素,-1代表最后一个元素】
  LIST没有命令可以直接查询是否包含这个STRING!
  LIST中元素是有序的,提供了lindex key index来返回下标为index的元素
Set  Set是String类型的无序集合,和JAVA的Set特点一致。
  sadd/smembers/sinter/sinterstore/sunion/sunionstore/sdiff/sdiffstore
  【以store结尾的标示此命令的结果存储至另一个SET集合中】
  Set的最大特点是支持集合之间的交,并,差运算。
  【这些操作很利于实现SNS需要的好友推荐,BLOG的TAG功能等】
  Set还提供SISMEMBER命令来查询SET集合是否包含这个KEY!这是LIST所不能的!
  由于Set的无序性,导致取出一个元素只能利用spop/srandmember随机取出!而sorted set解决了这一问题。
Sorted Set  Sorted Set的中的元素是String类型的,但是每一个String元素关联了一个SCORE(权重,优先级),元素根据SCORE来进行排序。
  
  zset需要注意的是,有一个排名,即rank;一个是分数,即score.
Hash  一个String类型的FILED/VALUE的映射表。
  Hash特别适合存储对象,占用更少的内存,而且可以很方便的存取整个对象。
  hset/hmset/hget/hmget/hkeys/hvals/hgetall/hlen/hdel/hexists...
  KEY
exists key0 or 1 del keytype keynone/string/list/set/...keys pattern符合pattern的所有KEYexpire key seconds设置KEY的过期时间  ......



运维网声明 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-631451-1-1.html 上篇帖子: Redis 管理命令 下篇帖子: Redis学习(管线)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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