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