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

[经验分享] Redis详细教程

[复制链接]

尚未签到

发表于 2018-11-7 07:19:47 | 显示全部楼层 |阅读模式
  Linux中的Redis缓存服务器
  一、Redis基础部分:
  1、redis介绍与安装比mysql快10倍以上
  *****************redis适用场合****************
  1.取最新N个数据的操作
  2.排行榜应用,取TOP N 操作
  3.需要精确设定过期时间的应用
  4.计数器应用
  5.Uniq操作,获取某段时间所有数据排重值
  6.实时系统,反垃圾系统7.Pub/Sub构建实时消息系统
  7.Pub/Sub构建实时消息系统8.构建队列系统
  9.缓存
  =============================================
  SET操作每秒钟 110000 次,GET操作每秒钟 81000 次,服务器配置如下:
  Linux 2.6, Xeon X3320 2.5Ghz.
  stackoverflow 网站使用 Redis 做为缓存服务器。
  同时也会将数据写到硬盘上。所以数据是安全的(除突然断电外,重启服务会写到dump.rdb文件中)
  ********************************************************************
  目前最新稳定版本为:2.4.17.tar.gz 、redis-2.6.10.tar.gz
  wget http://redis.googlecode.com/files/redis-2.4.17.tar.gz
  PHP模块:owlient-phpredis-2.1.1-1-g90ecd17.tar.gz
  1.安装:
  tar zxvf redis-2.4.17.tar.gz
  cd redis-2.4.17
  make
  cd src && make install
  2.移动配置文件位置(为了便于管理)
  cd /usr/local/
  mkdir -p /usr/local/redis/bin
  mkdir -p /usr/local/redis/etc
  mv /lamp/redis-2.4.17/redis.conf /usr/local/redis/etc
  cd /lamp/redis-2.4.17/src
  mv mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-dump redis-cli redis-server /usr/local/redis/bin
  3.修改配置文件
  vi /usr/local/redis/etc/redis.conf
  一、将daemonize no 中no改为yes[yes指后台运行]
  4.启动/随机启动:
  cd /usr/local/redis/bin
  ./redis-server /usr/local/redis/etc/redis.conf#启动redis并指定配置文件。
  #vi /etc/rc.local #设置随机启动。
  /usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf
  5.查看是否启动成功
  ps -ef | grep redis
  netstat -tunpl | grep 6379#查看端口是否占用。
  6.进入客户端/退出
  cd /usr/local/redis/bin
  ./redis-cli#进入
  quit#退出
  7.关闭redis
  pkill redis-server#关闭
  ./redis-cli shutdown#关闭
  ************************************Redis安全************************************
  Redis的安全性???(由以下4种方式)
  1.用ACL控制器安全性。
  2.在redis.conf配置文件增加下面这一行配置,即可把redis绑定在单个接口上(但并不是只有接受这个网卡的数据)。
  bind 127.0.0.1
  3.给redis加上较长密码(无需要记住)
  4.在redis.conf配置启用认证功能。
  5.SSL代理
  6.禁用指定命令。
  ************************************** Redis配置 **********************************************
  daemonize    如果需要在后台运行,把该项改为yes
  pidfile      配置多个pid的地址 默认在/var/run/redis.pid
  bind 绑定ip,设置后只接受来自该ip的请求
  port 监听端口,默认为6379
  timeout      设置客户端连接时的超时时间,单位为秒
  loglevel     分为4级,debug、verbose、notice、warning
  logfile      配置log文件地址
  databases    设置数据库的个数,默认使用的数据库为0
  save         设置redis进行数据库镜像的频率
  rdbcompression    在进行镜像备份时,是否进行压缩
  Dbfilename        镜像备份文件的文件名
  Dir   数据库镜像备份的文件放置路径
  Slaveof     设置数据库为其他数据库的从数据库
  Masterauth 主数据库连接需要的密码验证
  Requirepass     设置登录时需要使用的密码
  Maxclients 限制同时连接的客户数量
  Maxmemory 设置redis能够使用的最大内存
  Appendonly 开启append only模式
  以下了解即可:
  Appendfsync 设置对appendonly.aof文件同步的频率
  vm-enabled 是否开启虚拟内存支持
  vm-swap-file 设置虚拟内存的交换文件路径
  vm-max-memory 设置redis使用的最大物理内存大小
  vm-page-size 设置虚拟内存的页大小
  vm-pages 设置交换文件的总的page数量
  vm-max-threads 设置VM IO同时使用的线程数量
  Glueoutputbuf 把小的输出缓存存放在一起
  hash-max-zipmap-entries 设置hash的临界值
  Activerehashing 重新hash
  *******************************************************************
  5种数据类型:字符串、哈希、链表、集合、有序集合。
  支持:push/pop、add/remove 、取交集、并集、差集、排序。
  redismysql
  同时也会将数据写到硬盘上。所以数据是安全的(除突然断电外,重启服务会写到dump.rdb文件中)
  *******************************************************************
  select num#选择库,默认在0库,共16个库
  auth liweijie#授权用户所需密码(密码就是redis.conf中配置的密码)
  flushdb#清空数据库。
  String(字符串)类型:
  set name lijie#设置键name的值为lijie
  get name#获取name的值。
  keys *#查询所有的键。
  setnx name liweijie#如果键已存在则返回0,不更新,防止覆盖。
  setex haircolor 10 red #设置键的值的有效期为10秒。
  setrange email 6 lampbre.com#替换键的值从第6个字符开始换为lampbre.com
  mset name1 李大伟 name2 李小伟#设置多个键的值。
  msetnxname1 张三 name3 李四#判断键是否存在,不存在则设置,否则不设置返回0
  mget name1 name2 name3#一次获取多个键的值。
  getset name1 Tom#重新设置键的值,并返回旧的键值。
  getrange email 6 18#截取email键的值,从第6-18位间的字符。
  incr uid#每次自增1 (如果key中uid不存在,则设置并从0开始,下同)
  incrby uid 5#每次自增5
  incrby uid -5#每次自减5
  decr uid #每次自减1
  decrby uid 5#每次自减5
  appendname1 @126.com#给name1的值,添加字符串@126.com
  strlenname1#返回键name1的值的长度。
  *************************************************************************
  Hashes(哈希)类型:
  hset user:001 name liweijie#哈希设置用户user:001的name键值为liweijie
  hset user:001 age 21#同样,增加一个age键值为21
  hsetnx user:001 age 22#同上,但检测键是否存在。若不存在创建。
  hmset user:002 name liweijie2 age 26 sex 1#同时设置多个键的值。
  hget user:001 name#哈希获取用户user:001的name键的值。
  hget user:001 age #同上。
  hmget user:001 name age sex#获取多个指定的键的值。
  hgetall user:001#获取所有键的值。
  hincrbyuser:001 age -8#在指定键上加上给定的值。
  hexists user:001 sex#检测指定的键值是否存在。
  hlen user:001#返回指定哈希的键个数/字段个数。
  hdel user:001 sex#删除指定(user:001)哈希的指定字段或是键值。
  hkeys user:003#返回哈希里所有字段或是键值。
  *********************************************************************
  Lists(链表)类型及操作(棧或队列):
  lpush mylist "world"#从头部插入字符串
  lpush mylist "hello"#同上
  lrange mylist 0 -1#获取从0到最后一个如[1) "hello" 2) "world"]
  rpush mylist "jiejie"#在尾部插入
  linsert mylist before "hello" "this is linsert" #指定插入位置(在hello之前插入)。
  lset mylist 0 "what"#设置修改指定下标的值。
  lrem mylist 1 "hello"#删除(1个)一个值为hello的元素。(n
  文章出处:http://jingyan.baidu.com/article/fdbd4277187fb7b89e3f48f2.htm


运维网声明 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-631678-1-1.html 上篇帖子: Keepalived架构高可用的redis数据库缓存服务器 下篇帖子: redis主从配置及通过keepalived实现redis自动切换,redis主从实现10秒检查与恢复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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