🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# redis-介绍和使用 [TOC] ## 一、redis简介 ### 1. 简介 Redis是一款开源的,ANSI C语言编写的,高级键值(key-value)缓存和支持永久存储NoSQL数据库产品。 Redis采用内存(In-Memory)数据集(DataSet) 。支持多种数据类型。运行于大多数POSIX系统,如Linux、*BSD、OS X等。作者: Salvatore Sanfilippo ### 2. 与其他缓存数据库对比 1) Memcached: * 优点: 高性能读写、单一数据类型、支持客户端式分布式集群、一致性hash、多核结构、多线程读写性能高。 * 缺点: 无持久化、节点故障可能出现缓存穿透、分布式需要客户端实现、跨机房数据同步困难、架构扩容复杂度高 2) Redis: * 优点 高性能读写、多数据类型支持、数据持久化、高可用架构、支持自定义虚拟内存、支持分布式分片集群、单线程读写性能极高 * 缺点: 多线程读写较Memcached慢 3) Tair: * 优点: 高性能读写、支持三种存储引擎(ddb、rdb、ldb)、支持高可用、支持分布式分片集群、支撑了几乎所有淘宝业务的缓存。 * 缺点: 单机情况下,读写性能较其他两种产品较慢 ### 3. redis网页 Redis.io Download/redis.io Redisdoc.com redis.cn ## 二、安装和部署redis ### 1. 多种安装方式 1) epel源方式安装[版本低] ```sh wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo yum install redis -y ``` 2) 编译安装[版本高] 下载安装 ```sh wget -P /server/tools/ http://download.redis.io/releases/redis-5.0.0.tar.gz tar xzf /server/tools/redis-5.0.0.tar.gz -C /opt cd /opt && ln -s redis-5.0.0 redis cd redis && make ``` 设置环境变量 ```sh echo 'export PATH=/opt/redis/src:$PATH ' >>/etc/profile source /etc/profile ``` ### 2. 启动和简单操作 1) 启动redis ```sh redis-server & ``` 2) 连接redis ```sh redis-cli ``` 3) 简单操作 ```sh #设置key和值 [root@xxx ~]# 10.0.0.41:6379> set luokey luogang OK #查看key对应的值 [root@xxx ~]# 127.0.0.1:6379> get luokey "luogang" #查看数据库中所有key的值 [root@xxx ~]# 127.0.0.1:6379> keys * 1) "luokey" #查看key是否存在 [root@xxx ~]# 127.0.0.1:6379> exists luokey (integer) 1 #查看key的数据类型 [root@xxx ~]# 127.0.0.1:6379> type luokey string #查看字符串的长度 [root@xxx ~]# 127.0.0.1:6379> strlen luokey (integer) 10 #删除key [root@xxx ~]# 127.0.0.1:6379> del luokey (integer) 1 ``` 4) 关闭redis ```sh #redis中 127.0.0.1:6379> shutdown #redis外 redis-cli shutdown ``` ## 三、redis配置文件和多实例 redis启动时,默认调用安装目录下的redis.conf命令进行启动,也可以直接跟配置文件路径,以该配置文件进行启动,因此可以很方便进行多实例启动 ### 1. 创建基本配置文件 ```sh mkdir -p /data/redis_m/6379/ cat >/data/redis_m/6379/redis.conf <<'EOF' daemonize yes port 6379 logfile /data/redis_m/6379/redis.log dir /data/redis_m/6379 dbfilename dump.rdb bind 10.0.0.52 127.0.0.1 EOF ``` 以上语句分别指定后台运行,执行端口,指定日志文件,指定数据目录,指定持久化文件名,指定监听的IP地址. ### 2. 多实例与指定配置文件启动 ```sh redis-server /data/redis_m/6379/redis.conf ``` redis多实例,只需要按上图那样配置多个配置文件,然后以该配置文件启动即可 ## 四、redis重要命令 ### 1. info redis的info命令可以看到非常多的状态信息,可以通过该信息实现对redis的监控 命令说明详见http://redisdoc.com/server/info.html ### 2. config set 语法:`CONFIG SET parameter value` 通过config set命令,可以不重启redis实现对部分配置的修改和生效,CONFIG SET 可以修改的配置参数可以使用命令 CONFIG GET * 来列出,所有被 CONFIG SET 修改的配置参数都会立即生效。 但重启失效,所以需要同步修改配置文件中的相关参数 举例: ```sh [root@xxx ~]# redis> CONFIG GET slowlog-max-len 1) "slowlog-max-len" 2) "1024" [root@xxx ~]# redis> CONFIG SET slowlog-max-len 10086 OK [root@xxx ~]# redis> CONFIG GET slowlog-max-len 1) "slowlog-max-len" 2) "10086" ``` ### 3. 其他命令 ```sh Info 显示info信息 Clinet list 客户端列表 Client kill ip:port 关闭指定客户端 config get * 获取config配置 CONFIG GET/SET 动态修改配置 Dbsize FLUSHALL 清空所有数据 select 1 FLUSHDB 清空当前库 MONITOR 监控实时指令 SHUTDOWN 关闭服务器 save 将当前数据保存 SLAVEOF host port 主从配置 SLAVEOF NO ONE SYNC 主从同步 ROLE 返回主从角色 ```