首页 > 代码库 > Redis的安装和部署

Redis的安装和部署

基本知识

1、Redis的数据类型:

  字符串、列表(lists)、集合(sets)、有序集合(sorts sets)、哈希表(hashs)

2、Redis和memcache相比的独特之处:

  (1)redis可以用来做存储(storge)、而memcache是来做缓存(cache)。这个特点主要是因为其有“持久化”功能

  (2)存储的数据有“结构”,对于memcache来说,存储的数据,只有一种类型——“字符串”,而redis则可以存储字符串、链表、集合、有序集合、哈序结构

3、持久化的两种方式:

  Redis将数据存储于内存中,或被配置为使用虚拟内存。

  实现数据持久化的两种方式:(1)使用截图的方式,将内存中的数据不断写入磁盘(性能高,但可能会引起一定程度的数据丢失)

               (2)使用类似mysql的方式,记录每次更新的日志

4、Redis的主从同步:对提高读取性能非常有益

5、Redis服务端的默认端口是6379

安装redis 前先检查gcc环境:

$ gcc -v
使用内建 specs。
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapper
目标:x86_64-redhat-linux
配置为:../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
线程模型:posix
gcc 版本 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) 

如果没有gcc环境 ,可用yum install gcc 来安装:

[root@localhost ~]# yum install gcc
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package gcc.i386 0:4.1.2-51.el5 set to be updated
--> Processing Dependency: cpp = 4.1.2-51.el5 for package: gcc
--> Processing Dependency: libgomp >= 4.1.2-51.el5 for package: gcc
--> Processing Dependency: glibc-devel >= 2.2.90-12 for package: gcc
--> Processing Dependency: libgcc >= 4.1.2-51.el5 for package: gcc
--> Running transaction check
---> Package cpp.i386 0:4.1.2-51.el5 set to be updated
---> Package glibc-devel.i386 0:2.5-65 set to be updated
--> Processing Dependency: glibc-headers = 2.5-65 for package: glibc-devel
--> Processing Dependency: glibc = 2.5-65 for package: glibc-devel
--> Processing Dependency: glibc-headers for package: glibc-devel
---> Package libgcc.i386 0:4.1.2-51.el5 set to be updated
---> Package libgomp.i386 0:4.4.4-13.el5 set to be updated
--> Running transaction check
--> Processing Dependency: glibc = 2.5-49 for package: nscd
---> Package glibc.i686 0:2.5-65 set to be updated
--> Processing Dependency: glibc-common = 2.5-65 for package: glibc
---> Package glibc-headers.i386 0:2.5-65 set to be updated
--> Processing Dependency: kernel-headers >= 2.2.1 for package: glibc-headers
--> Processing Dependency: kernel-headers for package: glibc-headers
--> Running transaction check
---> Package glibc-common.i386 0:2.5-65 set to be updated
---> Package kernel-headers.i386 0:2.6.18-274.el5 set to be updated
---> Package nscd.i386 0:2.5-65 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package                Arch         Version                 Repository    Size
================================================================================
Installing:
 gcc                    i386         4.1.2-51.el5            base         5.2 M
Installing for dependencies:
 glibc-devel            i386         2.5-65                  base         2.0 M
 glibc-headers          i386         2.5-65                  base         604 k
 kernel-headers         i386         2.6.18-274.el5          base         1.2 M
 libgomp                i386         4.4.4-13.el5            base          72 k
Updating for dependencies:
 cpp                    i386         4.1.2-51.el5            base         2.7 M
 glibc                  i686         2.5-65                  base         5.3 M
 glibc-common           i386         2.5-65                  base          16 M
 libgcc                 i386         4.1.2-51.el5            base          96 k
 nscd                   i386         2.5-65                  base         169 k

Transaction Summary
================================================================================
Install       5 Package(s)
Upgrade       5 Package(s)

Total download size: 34 M
Is this ok [y/N]: y
Downloading Packages:

接下来我们来安装Redis

1、先到Redis官网(redis.io)下载redis安装包 

技术分享

 

 

2、将其下载到我的/lamp目录下

3、解压并进入其目录

  技术分享

4、编译源程序

  make 

  cd src

  make install PREFIX=/usr/local/redis

5、将配置文件移动到redis目录

  技术分享

6、启动redis服务

  技术分享

7、默认情况,Redis不是在后台运行,我们需要把redis放在后台运行

  vim /usr/local/redis/etc/redis.conf

  将daemonize的值改为yes

  技术分享

8、客户端连接

  /usr/local/redis/bin/redis-cli 

  技术分享

9、停止redis实例

  /usr/local/redis/bin/redis-cli shutdown

  或者

  pkill redis-server

10、让redis开机自启

  vim /etc/rc.local

  加入

  /usr/local/redis/bin/redis-server /usr/local/redis/etc/redis-conf

11、接下来我们看看/usr/local/redis/bin目录下的几个文件时什么

  redis-benchmark:redis性能测试工具

  redis-check-aof:检查aof日志的工具

  redis-check-dump:检查rdb日志的工具

  redis-cli:连接用的客户端

  redis-server:redis服务进程

Redis的配置

  daemonize:如需要在后台运行,把该项的值改为yes

  pdifile:把pid文件放在/var/run/redis.pid,可以配置到其他地址

  bind:指定redis只接收来自该IP的请求,如果不设置,那么将处理所有请求,在生产环节中最好设置该项

  port:监听端口,默认为6379

  timeout:设置客户端连接时的超时时间,单位为秒

  loglevel:等级分为4级,debug,revbose,notice和warning。生产环境下一般开启notice

  logfile:配置log文件地址,默认使用标准输出,即打印在命令行终端的端口上

  database:设置数据库的个数,默认使用的数据库是0

  save:设置redis进行数据库镜像的频率

  rdbcompression:在进行镜像备份时,是否进行压缩

  dbfilename:镜像备份文件的文件名

  dir:数据库镜像备份的文件放置的路径

  slaveof:设置该数据库为其他数据库的从数据库

  masterauth:当主数据库连接需要密码验证时,在这里设定

  requirepass:设置客户端连接后进行任何其他指定前需要使用的密码

  maxclients:限制同时连接的客户端数量

  maxmemory:设置redis能够使用的最大内存

  appendonly:开启appendonly模式后,redis会把每一次所接收到的写操作都追加到appendonly.aof文件中,当redis重新启动时,会从该文件恢复出之前的状态

  appendfsync:设置appendonly.aof文件进行同步的频率

  vm_enabled:是否开启虚拟内存支持

  vm_swap_file:设置虚拟内存的交换文件的路径

  vm_max_momery:设置开启虚拟内存后,redis将使用的最大物理内存的大小,默认为0

  vm_page_size:设置虚拟内存页的大小

  vm_pages:设置交换文件的总的page数量

  vm_max_thrrads:设置vm IO同时使用的线程数量

Redis的安装和部署