热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

_00011Redis安装以及快速入门之一(Redis安装)

博文作者:妳那伊抹微笑个性签名:世界上最遥远的距离不是天涯,也不是海角,而是我站在妳的面前,妳却感觉不到我的存在技术方向:Flume+Kafka+Storm+RedisHba
博文作者: 妳那伊抹微笑
个性签名: 世界上最遥远的距离不是天涯,也不是海角,而是我站在妳的面前,妳却感觉不到我的存在
技术方向: Flume+Kafka+Storm+Redis/Hbase+Hadoop+Hive+Mahout+Spark ... 云计算技术
转载声明: 可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明,谢谢合作!
qq交流群: 214293307  云计算之嫣然伊笑(期待与你一起学习,共同进步)


# Redis

# Redis简介

redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)list(链表)set(集合)zset(sorted set --有序集合)hash(哈希类型)。这些数据类型都支持push/popadd/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部分场合可以对关系数据库起到很好的补充作用。它提供了PythonRubyErlangPHP客户端,使用很方便。

Redis支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。这使得Redis可执行单层树复制。从盘可以有意无意的对数据进行写操作。由于完全实现了发布/订阅机制,使得从数据库在任何地方同步树时,可订阅一个频道并接收主服务器完整的消息发布记录。同步对读取操作的可扩展性和数据冗余很有帮助。

# Redis 的安装redis-2.8.9.tar.gz

# 解压

[root@master redis]# pwd

/usr/local/yting/redis

[root@master redis]# ls

redis-2.8.9.tar.gz

[root@master redis]# tar -zxvf redis-2.8.9.tar.gz

# make 编译(这里可能会报TCL错误,看下面的安装错误就行了)

[root@master redis]# cd redis-2.8.9

[root@master redis-2.8.9]# ls

00-RELEASENOTES BUGS  CONTRIBUTING  COPYING deps  INSTALL  Makefile MANIFESTO  README  redis.conf runtest  runtest-sentinel  sentinel.conf src  tests  utils

[root@master redis-2.8.9]# make

# make test 测试(要一点时间,坐等、、、、、)

[root@master redis-2.8.9]# make test

然后会出现这样的结果,这中间可能会出现TCL错误,只要安装TCL就行了,下面有安装方法

make install 安装

[root@master redis-2.8.9]# make install

# 启动服务器

[root@master redis-2.8.9]# cd src/

[root@master src]# ls

adlist.c    anet.h       config.h  dict.o        lzf_c.c       migrate.o        pqsort.h       redis-benchmark     redis-cli.c     rio.c           setproctitle.o  syncio.o   t_zset.o      zipmap.o

adlist.h    anet.o       config.o  endianconv.c  lzf_c.o       mkreleasehdr.sh  pqsort.o      redis-benchmark.c  redis-cli.o     rio.h           sha1.c          testhelp.h  util.c       zmalloc.c

adlist.o    aof.c        crc64.c   endianconv.h   lzf_d.c      multi.c          pubsub.c       redis-benchmark.o   redis.h         rio.o           sha1.h          t_hash.c    util.h        zmalloc.h

ae.c        aof.o        crc64.h   endianconv.o   lzf_d.o      multi.o          pubsub.o       redis.c             redis.o         scripting.c     sha1.o          t_hash.o    util.o        zmalloc.o

ae_epoll.c  asciilogo.h  crc64.o   fmacros.h     lzf.h         networking.c     rand.c         redis-check-aof     redis-sentinel  scripting.o     slowlog.c       t_list.c    valgrind.sup

ae_evport.c bio.c        db.c      help.h         lzfP.h        networking.o     rand.h         redis-check-aof.c   redis-server    sds.c           slowlog.h       t_list.o    version.h

ae.h        bio.h        db.o      hyperloglog.c  Makefile     notify.c         rand.o         redis-check-aof.o   release.c       sds.h           slowlog.o       t_set.c     ziplist.c

ae_kqueue.c bio.o        debug.c   hyperloglog.o  Makefile.dep notify.o         rdb.c          redis-check-dump    release.h       sds.o           solarisfixes.h  t_set.o    ziplist.h

ae.o        bitops.c     debug.o   intset.c       memtest.c     object.c         rdb.h          redis-check-dump.c  release.o       sentinel.c      sort.c          t_string.c  ziplist.o

ae_select.c bitops.o     dict.c    intset.h       memtest.o     object.o         rdb.o          redis-check-dump.o  replication.c   sentinel.o      sort.o          t_string.o  zipmap.c

anet.c      config.c     dict.h    intset.o       migrate.c     pqsort.c         redisassert.h  redis-cli           replication.o   setproctitle.c  syncio.c        t_zset.c    zipmap.h

[root@master src]# ./redis-server (使用默认配置)


看起来很厉害的样纸、、、

# 配置自己的redis.conf配置文件,新建一个conf目录,方便管理(这里的话配置文件的修改暂时不描述了)

[root@master redis-2.8.9]# mkdir conf

[root@master redis-2.8.9]# cp redis.conf conf/

[root@master redis-2.8.9]# cd conf/

[root@master conf]# pwd

/usr/local/yting/redis/redis-2.8.9/conf

[root@master conf]# ll

total 32

-rw-r--r-- 1 root root 31205 May 26 16:30 redis.conf

[root@master conf]#

# 将启动命令加入环境变量中去(自己创建bin目录,方便管理)

[root@master redis-2.8.9]# pwd

/usr/local/yting/redis/redis-2.8.9

[root@master redis-2.8.9]# ls

00-RELEASENOTES BUGS  conf  CONTRIBUTING COPYING  deps  INSTALL Makefile  MANIFESTO  README redis.conf  runtest  runtest-sentinel  sentinel.conf src  tests  utils

[root@master redis-2.8.9]# mkdir bin

[root@master redis-2.8.9]# cd bin/

[root@master bin]# ln ../src/redis-serverredis-server

[root@master bin]# ln ../src/redis-cli redis-cli

[root@master bin]# ll

total 9756

-rwxr-xr-x 2 root root 4259855 May 26 16:05 redis-cli

-rwxr-xr-x 3 root root 5723167 May 26 16:05redis-server

[root@master bin]# vi /etc/profile.d/yting.sh(自己新建了一个yting.sh文件,里面写path什么的,不清楚的话可以百度下)

[root@master bin]# source /etc/profile

# Redis自带性能测试(redis-benchmark-h localhost -p 6379 -c 100 -n 100000

[root@master bin]# redis-benchmark -h localhost -p6379 -c 100 -n 100000

====== PING_INLINE ======

  100000requests completed in 1.19 seconds

  100 parallelclients

  3 bytespayload

  keep alive: 1

 

99.58% <= 1 milliseconds

100.00% <= 2 milliseconds

84033.61 requests per second

 

====== PING_BULK ======

  100000requests completed in 1.17 seconds

  100 parallelclients

  3 bytespayload

  keep alive: 1

# Redis的客户端

 

100.00% <= 0 milliseconds

85543.20 requests per second

 

[18025] 26 May 16:54:25.684 * 100 changes in 300seconds. Saving...

[18025] 26 May 16:54:25.685 * Background saving startedby pid 18236

[18236] 26 May 16:54:25.693 * DB saved on disk

[18236] 26 May 16:54:25.693 * RDB: 4 MB of memoryused by copy-on-write

[18025] 26 May 16:54:25.785 * Background savingterminated with success

====== SET ======

  100000requests completed in 1.35 seconds

  100 parallelclients

  3 bytespayload

  keep alive: 1

 

99.65% <= 1 milliseconds

100.00% <= 1 milliseconds

74183.98 requests per second

 

====== GET ======

  100000requests completed in 1.16 seconds

  100 parallelclients

  3 bytespayload

  keep alive: 1

 

99.89% <= 1 milliseconds

100.00% <= 1 milliseconds

86132.64 requests per second

 

====== INCR ======

  100000requests completed in 1.16 seconds

  100 parallelclients

  3 bytespayload

  keep alive: 1

 

99.65% <= 1 milliseconds

100.00% <= 1 milliseconds

85910.65 requests per second

 

====== LPUSH ======

  100000requests completed in 1.09 seconds

  100 parallelclients

  3 bytespayload

  keep alive: 1

 

99.98% <= 1 milliseconds

100.00% <= 1 milliseconds

91407.68 requests per second

 

====== LPOP ======

  100000requests completed in 1.17 seconds

  100 parallelclients

  3 bytespayload

  keep alive: 1

 

94.31% <= 1 milliseconds

99.98% <= 2 milliseconds

100.00% <= 3 milliseconds

100.00% <= 3 milliseconds

85324.23 requests per second

 

====== SADD ======

  100000requests completed in 1.32 seconds

  100 parallelclients

  3 bytespayload

  keep alive: 1

 

35.02% <= 1 milliseconds

99.95% <= 2 milliseconds

100.00% <= 2 milliseconds

75585.79 requests per second

 

====== SPOP ======

  100000requests completed in 1.29 seconds

  100 parallelclients

  3 bytespayload

  keep alive: 1

 

99.78% <= 1 milliseconds

100.00% <= 1 milliseconds

77639.75 requests per second

 

====== LPUSH (needed to benchmark LRANGE) ======

  100000requests completed in 1.38 seconds

  100 parallelclients

  3 bytespayload

  keep alive: 1

 

87.86% <= 1 milliseconds

100.00% <= 2 milliseconds

100.00% <= 2 milliseconds

72358.90 requests per second

 

====== LRANGE_100 (first 100 elements) ======

  100000requests completed in 2.08 seconds

  100 parallelclients

  3 bytespayload

  keep alive: 1

 

78.60% <= 1 milliseconds

99.91% <= 2 milliseconds

100.00% <= 2 milliseconds

48169.56 requests per second

 

====== LRANGE_300 (first 300 elements) ======

  100000requests completed in 5.14 seconds

  100 parallelclients

  3 bytespayload

  keep alive: 1

 

0.01% <= 1 milliseconds

0.02% <= 2 milliseconds

93.94% <= 3 milliseconds

96.40% <= 4 milliseconds

99.72% <= 5 milliseconds

99.99% <= 6 milliseconds

100.00% <= 6 milliseconds

19466.62 requests per second

 

====== LRANGE_500 (first 450 elements) ======

  100000requests completed in 6.99 seconds

  100 parallelclients

  3 bytespayload

  keep alive: 1

 

0.01% <= 1 milliseconds

0.02% <= 2 milliseconds

5.52% <= 3 milliseconds

95.79% <= 4 milliseconds

99.92% <= 5 milliseconds

99.97% <= 6 milliseconds

99.99% <= 7 milliseconds

100.00% <= 7 milliseconds

14304.10 requests per second

 

====== LRANGE_600 (first 600 elements) ======

  100000requests completed in 9.91 seconds

  100 parallelclients

  3 bytespayload

  keep alive: 1

 

0.01% <= 1 milliseconds

0.03% <= 2 milliseconds

0.07% <= 3 milliseconds

3.67% <= 4 milliseconds

85.32% <= 5 milliseconds

92.15% <= 6 milliseconds

93.30% <= 7 milliseconds

96.49% <= 8 milliseconds

99.08% <= 9 milliseconds

99.96% <= 10 milliseconds

99.99% <= 11 milliseconds

100.00% <= 12 milliseconds

100.00% <= 12 milliseconds

10090.82 requests per second

 

====== MSET (10 keys) ======

  100000requests completed in 1.67 seconds

  100 parallelclients

  3 bytespayload

  keep alive: 1

 

19.18% <= 1 milliseconds

69.29% <= 2 milliseconds

99.70% <= 3 milliseconds

100.00% <= 3 milliseconds

59701.50 requests per second

 

 

[root@master bin]# [18025] 26 May 16:55:26.045 *10000 changes in 60 seconds. Saving...

[18025] 26 May 16:55:26.046 * Background savingstarted by pid 18240

[18240] 26 May 16:55:26.075 * DB saved on disk

[18240] 26 May 16:55:26.076 * RDB: 4 MB of memoryused by copy-on-write

[18025] 26 May 16:55:26.146 * Background savingterminated with success

 

[root@master bin]#

# 查询系统信息([root@master bin]# redis-cli info)

[root@master bin]# redis-cli info (截一部分图意思一下吧!)

[root@master bin]# redis-cli info | grepmem (看看内存信息)

# Tcl的安装tcl8.6.1-src.tar.gz

# 解压

tar -zxvf tcl8.6.1-src.tar.gz

# 切换到unix目录下

[root@master redis-2.8.9]# cd unix/

# 运行configure 命令

[root@master unix]# ./ configure

# 编译TCL软件包

[root@master unix]# pwd

/home/tcl8.6.1/unix

[root@master unix]# make

# 安装TCL软件包

[root@master unix]# make install

# 中间不报错的话就是安装成功了

 

# Redis安装中出现的错误

You need tcl 8.5 or newer in order to run the Redistest

make[1]: *** [test] Error 1

make[1]: Leaving directory`/usr/local/yting/redis/redis-2.8.9/src'

make: *** [test] Error 2

原因:没有安装tcl

解决:安装tcl就好

详细安装请看目录中的# Tcl的安装 tcl8.6.1-src.tar.gz

 


推荐阅读
  • 第二章:Kafka基础入门与核心概念解析
    本章节主要介绍了Kafka的基本概念及其核心特性。Kafka是一种分布式消息发布和订阅系统,以其卓越的性能和高吞吐量而著称。最初,Kafka被设计用于LinkedIn的活动流和运营数据处理,旨在高效地管理和传输大规模的数据流。这些数据主要包括用户活动记录、系统日志和其他实时信息。通过深入解析Kafka的设计原理和应用场景,读者将能够更好地理解其在现代大数据架构中的重要地位。 ... [详细]
  • 本文深入探讨了NoSQL数据库的四大主要类型:键值对存储、文档存储、列式存储和图数据库。NoSQL(Not Only SQL)是指一系列非关系型数据库系统,它们不依赖于固定模式的数据存储方式,能够灵活处理大规模、高并发的数据需求。键值对存储适用于简单的数据结构;文档存储支持复杂的数据对象;列式存储优化了大数据量的读写性能;而图数据库则擅长处理复杂的关系网络。每种类型的NoSQL数据库都有其独特的优势和应用场景,本文将详细分析它们的特点及应用实例。 ... [详细]
  • 浅析python实现布隆过滤器及Redis中的缓存穿透原理_python
    本文带你了解了位图的实现,布隆过滤器的原理及Python中的使用,以及布隆过滤器如何应对Redis中的缓存穿透,相信你对布隆过滤 ... [详细]
  • 探讨Redis的最佳应用场景
    本文将深入探讨Redis在不同场景下的最佳应用,包括其优势和适用范围。 ... [详细]
  • 从0到1搭建大数据平台
    从0到1搭建大数据平台 ... [详细]
  • 本书《.NET Core 2.* 开发者指南》是面向开发者的全面学习与实践手册,涵盖了从基础到高级的各个层面。书中详细解析了 .NET Core 的核心概念,包括如何创建 .NET Core 网站,并通过视频教程直观展示操作过程。此外,还深入探讨了 Startup 类的作用、项目目录结构的组织方式以及如何在应用中使用静态文件等内容。对于希望深入了解 .NET Core 架构和开发技巧的开发者来说,本书提供了丰富的实践案例和详尽的技术指导。 ... [详细]
  • Redis支持哪几种数据类型?支持多种类型的数据结构1.string:最基本的数据类型,二进制安全的字符串,最大512M。2 ... [详细]
  • 2021程序员必看面试指南进大厂年薪百万需要付出多少努力?
    进大厂几点校内募你必须知道!!!1、大部分公司的HR都说我们不看重学历(骗你的!),但是如果你的学校不出众的话,很难在一堆简历中脱颖而出,除非你的简历上有特别的亮点, ... [详细]
  • 一文了解消息中间件RabbitMQ
    消息中间件---RabbitMQ1消息中间件的作用2.常用的消息中间件3消息中间件RabbitMQ3.1RabbitMQ介绍3.3RabbitMQ的队列模式3.3RabbitMQ的 ... [详细]
  • Alibaba珍藏版mybatis手写文档,值得一读!
    一面问题:MySQLRedisKafka线程算法mysql知道哪些存储引擎,它们的区别mysql索引在什么情况下会失效mysql在项目中的优化场景&# ... [详细]
  • 本文介绍了Memcached分布式集群中的取模算法和一致性哈希算法的原理及其对缓存命中率的影响。通过详细分析,探讨了如何优化这些算法以提高系统的稳定性和性能。 ... [详细]
  • Spark与HBase结合处理大规模流量数据结构设计
    本文将详细介绍如何利用Spark和HBase进行大规模流量数据的分析与处理,包括数据结构的设计和优化方法。 ... [详细]
  • ### 优化后的摘要本学习指南旨在帮助读者全面掌握 Bootstrap 前端框架的核心知识点与实战技巧。内容涵盖基础入门、核心功能和高级应用。第一章通过一个简单的“Hello World”示例,介绍 Bootstrap 的基本用法和快速上手方法。第二章深入探讨 Bootstrap 与 JSP 集成的细节,揭示两者结合的优势和应用场景。第三章则进一步讲解 Bootstrap 的高级特性,如响应式设计和组件定制,为开发者提供全方位的技术支持。 ... [详细]
  • 本指南从零开始介绍Scala编程语言的基础知识,重点讲解了Scala解释器REPL(读取-求值-打印-循环)的使用方法。REPL是Scala开发中的重要工具,能够帮助初学者快速理解和实践Scala的基本语法和特性。通过详细的示例和练习,读者将能够熟练掌握Scala的基础概念和编程技巧。 ... [详细]
  • Hudi是一种数据湖的存储格式,在Hadoop文件系统之上提供了更新数据和删除数据的能力以及流式消费变化数据的能力。应用场景近实时数据摄取Hudi支持插入、更新和删除数据的能力。您 ... [详细]
author-avatar
好学的程序员
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有