<p>技术学习笔记--redis系列</p> <p>一、背景介绍:</p> <p>redis的全称:remote dictonary server(远程字典服务器)</p> <p>谁在使用redis:</p> <p>国内使用redis的有:新浪微博、知乎、街旁,国外的有:GitHub 、StackOverflow 、Flicker、暴雪和Instagram</p> <p>redis是做什么用的:</p> <p>高性能键值对数据库 ,开发语言为:C,可以用作缓存和队列系统</p> <p>redis支持的键值数据类型:</p> <p>字符串类型、散列类型、列表类型、集合类型、有序集合类型</p> <p>内存存储和持久化:</p> <p>redis支持异步将内存中的数据写到硬盘上,同时不影响继续服务</p> <p>redis和memcached的区别和联系:</p> <p>联系:二者均可作为缓存系统</p> <p>区别:redis是单线程的,memcached是多线程的,故在多核处理器环境下,memcacahed的性能会更高一些,但是由于redis基本上都是在内存中操作,所以这些性能上的差别几乎可以不计,redis在高级数据类型和持久化方面要比memcached好一些</p> <p>二、安装以及运行</p> <p>2.1 在posix系统中安装:</p> <p>redis约定此版本号,次版本号为偶数的为稳定版本(2.4.3),为奇数的是非稳定版本(2.11.1)</p> <p>源码安装:a、从redis官网下载redis的稳定版源代码(redis-stable.tar.gz)</p> <p>b、tar xzf redis-stable.tar.gz cd redis-stable</p> <p>c、make d、make install (将编译生成的可执行文件拷贝到/usr/local/bin下)</p> <p>e、最好执行 make test 确认安装的正确与否</p> <p>2.2 redis的启动和停止</p> <p>编译后生成的可执行文件有:</p> <p>a、 redis-server redis服务器 b、redis-cli redis 命令行客户端 (command line interface) c、redis-benchmark 性能测试工具</p> <p>d、redis-check-aof aof文件修复工具 e、redis-check-dump rdb文件检查工具</p> <p>启动的两种方式:</p> <p>(1)、直接启动:redis-server --port=8888 # 在8888 端口进行监听,默认的是6379</p> <p>(2)、通过初始化脚本启动(以ubuntu和debian发行版为例)</p> <p>在源代码的utils的文件redis_init_script为redis初始化脚本模板</p> <p>a、将redis_init_script拷贝到/etc/init.d 重命名为redis_8888 ,同时修改该脚本文件中的监听的端口由默认的6379更改为8888</p> <p>b、建立如下两个文件夹:</p> <p>/etc/redis 在其中存放配置文件,源文件位于:源代码目录的顶层目录的redis.conf</p> <p>/var/redis/8888 存放持久化文件</p> <p>c、修改/etc/redis/redis.conf 为8888.conf,修改其中的一下四项:</p> <p>daemonize yes 以守护进程的模式运行;pidfile /var/run/redis_8888.pid 设置redis的pid文件的位置</p> <p>port 8888 ;监听端口 dir /var/redis/8888 持久化文件的存储位置</p> <p>/etc/init.d/redis_8888 start 启动redis</p> <p>然后执行使redis随系统的启动而启动sudo update-rc.d redis_8888 defaults</p> <p>停止redis的方法:</p> <p>redis-cli -p 8888 shutdown 这和使用kill redis的进程Id是一样的</p> <p>redis-cli的使用说明:</p> <p>redis-cli -h 192.168.1.129 -p 8888 redis-server位于192.168.1.129 端口在8888</p> <p>&gt; ping # 客户端和服务端是否连接正常 返回pong为正常</p> <p>命令返回值类型:</p> <p>状态恢复、错误回复、整数回复、字符串回复、多行字符串回复</p> <p>keys * #显示当前的所有键</p> <p>redis-server的配置:可以在启动的时候指定配置文件</p> <p>redis-server /path/redis.conf</p> <p>redis-server /path/redis.conf --loglevel warn #这是配置文件中的loglevel选项将被命令行中的值替换</p> <p>使用config set 可以在不重启redis服务的情况下更改 <span style="TEXT-DECORATION: underline"><strong>部分</strong></span> 配置,使用config get loglevel获取指定配置项的值</p> <p>多数据库:</p> <p>redis-server默认有16个数据库,在redis.conf中配置,在redis-cli中可以使用select来进行切换</p> <p>使用flushall会将这个redis实例中的所有数据库中的所有数据清空,并且一个redis实例中的所有数据库是同一个密码</p>