redis入门综合概要介绍

来源:互联网 发布:淘宝促销文案范文 编辑:程序博客网 时间:2024/05/19 01:29

redis入门综合概要介绍

  • 应用场景
    • 1.取最新N个数据的操作
      • •使用LPUSH latest.comments<ID>命令,向list集合中插入数据
      • •插入完成后再用LTRIM latest.comments 0 5000命令使其永远只保存最近5000个ID
      • •然后我们在客户端获取某一页评论时可以用下面的伪代码 redis.lrange("latest.comments",start,start+num_items-1)  
      • ps:如果输入无序则可以使用sorted set用时间作为score,然后lrangebyscore分页读取,按时间排序
    • 2.排行榜应用,取TOP n操作
      • 将你要排序的值设置成sorted set的score,将具体的数据设置成相应的value,每次只需要执行一条ZADD命令即可。
    • 3.需要精准设定过期时间的应用
      • 比如你可以把上面说到的sorted set的score值设置成过期时间的时间戳,那么就可以简单地通过过期时间排序,定时清除过期数据了
    • 4.计数器应用
      • INCR,DECR命令
    • 5.Uniq操作,获取某段时间所有数据排重值
      • 使用Redis的set数据结构
    • 6.实时系统,反垃圾系统
      • set
    • 7.Pub/Sub构建实时消息系统
    • 8.构建队列系统
      • 使用list可以构建队列系统,使用sorted set甚至可以构建有优先级的队列系统。
    • 9.缓存
  • 支持类型
    • 字符串类型
    • l列表
      • 双端链表
    • z有序集合
      • 双端链表
      • 跳跃表
    • h哈希表(散列表)
      • 字典
    • s集合
      • 散列表
      • 字典
      • 整数集合

  • redis常用命令详情查看我的另外一篇专门介绍 http://blog.csdn.net/shy_snow/article/details/78389716
  • 服务器
    • config get *
    • config set param value
    • CONFIG REWRITE
    • BGSAVE
      • fork子进程
      • 内存占用加倍
      • 读写性能耗时约4-10倍
    • SAVE
      • 阻塞
    • BGREWRITEAOF
      • 后台异步重写aof文件
      • fork
    • TIME
      • 获取数据库时间,返回值两个,第一个是UTC,第二个是微秒数
    • MONITOR
      • 实时打印出 Redis 服务器接收到的命令,调试用
    • SLAVEOF host port
      • 将当前服务器转变为指定服务器的从属服务器(slave server)
    • SLAVEOF no one
  • 安装
    • liunx
      • 解压
        • tar zxf redis.tar.gz
      • 进入解压后的目录
      • make clean
      • 安装make
        • 可能遇到的问题
          • gcc未安装
            • 把网络搞定了,然后   在终端里yum install gcc*就自动安装了
            • 下载离线安装文件进行安装
            • 如果在内网则可以将安装好的系统做成镜像,然后离线yum
          • 默认编译器不是gcc
            • 修改默认编译器为gcc
            • 查看默认编译器
              • echo $CC
          • zmalloc.h:51:31: error: jemalloc/jemalloc.h: No such file or directory
            • 安装失败的残留文件
            • make distclean。清理一下,然后再make。
      • make install
      • 开机自启动
        • echo "redis-server /etc/redis/redis.conf" >>/etc/rc.local
    • 单主机多实例主从
      • 复制并修改配置文件
        • daemonize yes
          • 后台启动,守护进程
        • /var/run/redis_6379.pid
          • 定义自己的pid文件
        • port 6379
          • 定义端口号
      • 使用与代码实现
        • slaveof localhost 6379
      • 性能提升分析
    • 分布式集群
      • 分布式集群安装
        • 1.安装并启动多个实例
          • 修改配置文件
        • + -2.安装ruby、rubygems、redis ruby接口
          • 安装gem 需要ruby的版本在 1.8.7 以上

            低版本先升级zlib

            • yum install -y gcc zlib zlib-devel

            yum -y install ruby 

            rpm -ivh http://yum.puppetlabs.com/el/5/products/x86_64/puppetlabs-release-5-6.noarch.rpm yum install ruby ruby-devel rubygems rpm-build rpm -ivh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm vi /etc/yum.repos.d/epel.repo  修改 enabled=1  yum install rubygems  gem install -l ./redis-3.2.1.gem

            yum install rubygems

            gem install redis 

            • wget https://rubygems.global.ssl.fastly.net/gems/redis-3.2.1.gem
            • gem install -l ./redis-3.2.1.gem
        • + -3.创建集群增加节点迁移数据槽
          • ./redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005

            增加节点

            • redis-trib.rb add-node 192.168.130.230:8000 127.0.0.1:7000
            • redis-trib.rb reshard 192.168.130.230:8000 之后会问询迁移槽的数量和来源,输入yes后开始迁移。
    • 高可用
      • sentinel.conf
      • zookeeper+主从机
  • 其他
    • 数据库设计
      • key设计前缀方便后期拆分
      • 根据场景选择合适的数据类型
    • java操作
      • jedis客户端
      • 分布式集群java调用
    • 服务器端lua脚本  
原创粉丝点击