redis 学习(1)-- redis 安装与启动 redis 特性
关于 redis 的介绍网上已经有很多信息了,这里我就不在详细说明了。介绍一下几个鲜明特性:
1.速度快官方称可以达到10W的qps
将数据存储在内存中
由C语言编写
线程模型为单线程
2.持久化Redis将所有数据保持在内存中,并异步更新到磁盘上
3.支持多种数据结构String
Hash
List
Set
ZSet
BitMap(位图)
HyperLogLog(超小的内存唯一值计数器)
GEO(地理信息定位)
4.支持多种编程语言 5.功能丰富支持类MQ的发布订阅功能
支持Lua脚本
支持事务
支持pipeline
6.非常简单Redis 3.0的单机核心代码只有2300行代码
单线程模型
7.支持主从复制 8.高可用、分布式 redis 安装推荐在 linux 环境下安装,redis 作者并没有做 Windows 环境下的兼容,虽然微软官方有解决方案,但是难免会出现一系列未知的问题,这里我以使用 redis 3.0.7 版本为例,介绍 Linux 下 redis 的安装。
下载 redis 压缩文件(我自己是放到 /opt/soft 目录下)
wget
解压压缩文件
tar -xzf redis-3.0.7.tar.gz
建立软链接(便于目录管理,后期升级和维护)
ln -s redis-3.0.7 redis
移动到 redis 目录
cd redis
安装
make && make install在命令行中执行上述命令,等待安装完成。
redis 可执行文件说明安装结束后,我们移动到 redis/src 目录下,可以看到一些 redis 可执行文件:
ls | grep redis- 名称 作用redis-server 启动 redis 服务器
redis-cli redis 命令行客户端
redis-benchmark redis 性能测试工具
redis-check-aof AOF 文件修复工具
redis-check-dump RDB 文件检查工具
redis-sentinel Sentinel 服务器(2.8以后)
三种启动方式比较
redis 启动有三种方式:
最简启动
动态参数启动
配置文件启动
最简启动 redis-server该启动方式将使用 redis 的默认配置。
默认使用端口 6379 ,日志信息直接打印在屏幕上。
验证:
ps -ef | grep redis netstat -antpl | grep redis redis-cli -h ip -p port pingredis命令行客户端 连接 redis 服务器进行验证
同样的,我们不加参数,使用最简启动时客户端还是会连接默认端口:
动态参数启动我们指定端口号启动 redis:
redsi-server --port 6380同样的还是在前台打印出了日志信息,并且端口号变为了指定的 6380。
我们进行验证,依旧可以进行操作:
redis-cli -p 6380查看进程:
ps -ef | grep redis-server | grep -v grep 配置文件启动在日常的开发使用中,我们一般都是采用配置启动的方式,因为涉及到很多配置参数,明显配置文件启动才更符合我们的需求。
步骤如下:
在 redis 目录下建立一个 config 目录,用来存放配置文件。将 redis.conf 拷贝到该目录。
mkdir config cp redis.conf conf/
移动到 conf/ 目录,我们将 redis.conf 文件中去掉注释和空格的参数部分打印出来,并重定向到一个新的文件 redis-6381.conf ,然后删除 redis.conf 。
cat redis-6381.conf | grep -v "#" | grep -v "^$" -> redis-6382.conf rm redis.conf
打开 redis-6381.conf 文件,我们可以看到很多配置参数,这里暂时不用去管那么多参数,我们保留下面几个参数即可。
daemonize yes # 守护进程 port 6381 # 端口号 dir "/opt/soft/redis/data" # 工作目录 logfile "6381.log" # 日志信息返回 redis 目录,建立一个 data 目录。
使用下列命令启动 redis。
redis-server conf/redis-6381.conf可以看到控制台什么都没返回,说明 redis 以守护进程的方式启动了。
查看进程是否存在。
ps -ef | grep redis-server | grep 6381
查看日志是否存在。
cat data/6381.log
关闭 redis。
此时 redis 作为守护进程,我们可以使用下列命令关闭: