Redis 搭建与配置
Redis 简介
Redis 是一款开源的,ANSI C 语言编写的,高级键值(Key-Value)缓存和支持永久存储 NoSQL 数据库产品,
Redis 采用内存(In-Memory)数据集(DataSet),
支持多种数据类型,
运行于大多数 POSIX 系统,如Linux、*BSD、OS X等。
Redis 就是非关系型数据库(NOSQL)的一种,存储方式是 Key:value
Redis 作用
会话保持(EXPIRE 设置过期时间)
数据缓存(放在数据库前面,Memcached,Mongodb)
消息队列(Kafka),结合 ELK
Redis 优点
1.高速读写,将所有数据存储在内存,单线程服务,使用 C 语言
2.部署简单,使用稳定
3.数据类型丰富
- String: 字符串类型
- Hash: 哈希类型
- List: 列表类型
- Set: 集合类型
- Sorted set: 顺序集合类型
4.支持持久化,将内存的数据写入磁盘
5.多种内存分配及回收策略
6.支持事物、锁
7.消息队列、消息订阅
8.支持高可用:哨兵模式
9.支持分布式分片集群
10.支持的客户端语言很多:Java,PHP,Python,Node.js,C
Redis 下载
官方网站:https://redis.io/
下载网站:http://download.redis.io/releases/
帮助网站:http://redisdoc.com/
Redis & Memcached 数据缓存对比
# Memcached:
1.优点:高性能读写、单一数据类型、支持客户端式分布式集群、一致性hash多核结构、多线程读写性能高。
2.缺点:无持久化、节点故障可能出现缓存穿透、分布式需要客户端实现、跨机房数据同步困难、架构扩容复杂度高
# Redis:
1.优点:高性能读写、多数据类型支持、数据持久化、高可用架构、支持自定义虚拟内存、支持分布式分片集群、单线程读写性能极高
2.缺点:多线程读写较Memcached慢
# Tair:
1.优点:高性能读写、支持三种存储引擎(ddb、rdb、ldb)、支持高可用、支持分布式分片集群、支撑了几乎所有淘宝业务的缓存。
2.缺点:单机情况下,读写性能较其他两种产品较慢
# 对比结论:
1.Memcached:多核的缓存服务,更加适合于多用户并发访问次数(访问次数较少的应用场景)。
2.Redis:单核缓存服务,在单节点情况下,更加适合少量用户,多次访问的应用场景。
Redis 使用场景
会话缓存(Session Cache):将 Session 存储在 Redis 中,用 Redis 缓存会话相对于其他存储(如 Memcached)的优势是,Redis 提供了持久化 。
数据缓存:将后端(MySQL)存储的持久化数据,缓存到 Redis 中,加快查询速度,降低 MySQL I/O 负荷 。
排行榜 / 计数器:Redis 在内存中对数字进行递增、递减的操作十分方便,利用好集合(Set)和有序集合(Sort Set),这些操作非常简单 。
社交软件:共同好友,共同爱好(通过集合实现)
消息队列,结合 ELK 做日志收集(通过列表实现)
Redis 搭建
下载源码包
[root@redis ~]# wget http://download.redis.io/releases/redis-3.2.12.tar.gz
安装依赖
[root@redis ~]# yum install -y gcc gcc-c++
解压源码包
[root@redis ~]# tar xf redis-3.2.12.tar.gz
[root@redis ~]# mv redis-3.2.12 /usr/local/
[root@redis ~]# ln -s /usr/local/redis-3.2.12 /usr/local/redis
编译安装
[root@redis ~]# cd /usr/local/redis
[root@redis redis]# make & make install
启动 Redis
[root@redis redis]# ./src/redis-server &
[root@redis redis]# netstat -lntp
tcp 0 0 0.0.0.0:6379 0.0.0.0:* LISTEN 11759/./src/redis-s
连接 Redis
如果编译安装步骤中,没有安装(make install),需要手动配置环境变量 。
# 配置环境变量
[root@redis redis]# vim /etc/profile.d/redis.sh
export PATH=/usr/local/redis/src:$PATH
# 客户端连接
[root@redis redis]# redis-cli
127.0.0.1:6379>
关闭 Redis
[root@redis redis]# redis-cli shutdown
11759:M 03 Aug 10:20:20.535 # User requested shutdown...
11759:M 03 Aug 10:20:20.535 * Saving the final RDB snapshot before exiting.
11759:M 03 Aug 10:20:20.546 * DB saved on disk
11759:M 03 Aug 10:20:20.546 # Redis is now ready to exit, bye bye...
[1]+ Done ./src/redis-server
[root@redis redis]# redis-cli
127.0.0.1:6379> shutdown
11851:M 03 Aug 10:20:59.580 # User requested shutdown...
11851:M 03 Aug 10:20:59.580 * Saving the final RDB snapshot before exiting.
11851:M 03 Aug 10:20:59.584 * DB saved on disk
11851:M 03 Aug 10:20:59.584 # Redis is now ready to exit, bye bye...
not connected> quit
[1]+ Done ./src/redis-server
Redis 配置
Redis 配置文件
# 默认的配置文件
[root@redis redis]# pwd
/usr/local/redis
[root@redis redis]# ll
-rw-rw-r-- 1 root root 46695 Jun 13 2018 redis.conf
# 创建 redis 配置文件目录
[root@redis redis]# mkdir /service/redis/6379 -p
# 编写配置文件
[root@redis redis]# vim /service/redis/6379/redis.conf
bind 172.16.1.51 127.0.0.1 # 监听网段地址
port 6379 # 端口
daemonize yes # 后台启动(守护进模式)
pidfile /service/redis/6379/redis_6379.pid # 指定 pid 文件
loglevel notice # 指定日志级别
logfile /service/redis/6379/redis_6379.log # 指定日志文件
指定配置文件启动
[root@redis redis]# redis-server /service/redis/6379/redis.conf
Redis 使用
基础操作
# 连接 redis
[root@redis redis]# redis-cli
127.0.0.1:6379>
# 查看所有数据
127.0.0.1:6379> keys *
(empty list or set)
# 查看时注意不要轻易使用,如想查看数据,先查看数据量 DBSIZE
127.0.0.1:6379> DBSIZE
(integer) 2018041
# 切换库(Redis 中默认16个库)
127.0.0.1:6379> SELECT 1
OK
127.0.0.1:6379[1]> SELECT 2
OK
127.0.0.1:6379[2]> SELECT 3
OK
127.0.0.1:6379> SELECT 16
(error) ERR invalid DB index
# ============= 增删查改数据 ============= #
# 添加数据
127.0.0.1:6379> set k1 v1
OK
# 查看数据
127.0.0.1:6379> keys *
1) "k1"
127.0.0.1:6379> get k1
"v1"
# 删除数据
127.0.0.1:6379> keys *
1) "k1"
127.0.0.1:6379> DEL k1
(integer) 1
127.0.0.1:6379> keys *
(empty list or set)
# 修改数据(直接覆盖)
127.0.0.1:6379> set k1 v1
OK
127.0.0.1:6379> set k1 v11111
OK
127.0.0.1:6379> get k1
"v11111"
# 追加数据
127.0.0.1:6379> APPEND k1 000000
(integer) 12
127.0.0.1:6379> get k1
"v11111000000"
通用操作
# 判断 Key 是否存在(EXISTS)
127.0.0.1:6379> EXISTS k1
(integer) 1 # 存在则返回 1
127.0.0.1:6379> EXISTS k2
(integer) 0 # 不存在则返回 0
# 修改 Key 名字(RENAME)
127.0.0.1:6379> KEYS *
1) "k1"
127.0.0.1:6379> RENAME k1 k100
OK
127.0.0.1:6379> KEYS *
1) "k100"
# 查看数据类型(TYPE)
127.0.0.1:6379> TYPE k100
string
# 设置生存时间(EXPIRE)
# 以秒为单位
127.0.0.1:6379> EXPIRE zzz 100
(integer) 1
# 以毫秒为单位(PEXPIRE)
127.0.0.1:6379> PEXPIRE k100 10000
(integer) 1
# 查看生存时间(TTL)
127.0.0.1:6379> TTL k100
(integer) 1 # 正整数生存时间倒计时
127.0.0.1:6379> TTL k100
(integer) -1 # -1代表没有设置生存时间
127.0.0.1:6379> TTL k100
(integer) -2 # 代表设置过生存时间已删除,已过期
# 取消生存时间设置(PERSIST)
127.0.0.1:6379> TTL zzz
(integer) 93
127.0.0.1:6379> PERSIST zzz
(integer) 1
127.0.0.1:6379> TTL zzz
(integer) -1
密码设置
# 配置文件配置密码
[root@redis redis]# vim redis.conf
requirepass 123
# 使用密码连接
[root@redis redis]# redis-cli -a 123
# 登陆后输入密码
[root@redis redis]# redis-cli
127.0.0.1:6379> AUTH 123
OK
127.0.0.1:6379> DBSIZE
(integer) 2018041
# 连接 Redis Server 后获取密码
127.0.0.1:6379> CONFIG GET requirepass
1) "requirepass"
2) "123"
# 连接 Redis Server 后修改密码(临时,重启后失效)
127.0.0.1:6379> CONFIG set requirepass 234
OK
[root@redis redis]# redis-cli
127.0.0.1:6379> DBSIZE
(error) NOAUTH Authentication required.
127.0.0.1:6379> auth 123
(error) ERR invalid password
127.0.0.1:6379> auth 234
OK
# 连接 Redis Server 后修改密码,并写入配置文件中(永久,重启仍然有效)
127.0.0.1:6379> CONFIG SET requirepass 12345
OK
127.0.0.1:6379> CONFIG REWRITE
OK
127.0.0.1:6379> shutdown
OK
[root@redis redis]# redis-server /service/redis/6379/redis.conf
[root@redis redis]# redis-cli
127.0.0.1:6379> DBSIZE
(error) NOAUTH Authentication required.
127.0.0.1:6379> auth 234
(error) ERR invalid password
127.0.0.1:6379> auth 12345
OK
Redis 搭建与配置的更多相关文章
- Redis Cluster集群搭建与配置
Redis Cluster是一种服务器sharding分片技术,关于Redis的集群方案应该怎么做,请参考我的另一篇博客http://www.cnblogs.com/xckk/p/6134655.ht ...
- ELK+redis搭建nginx日志分析平台
ELK+redis搭建nginx日志分析平台发表于 2015-08-19 | 分类于 Linux/Unix | ELK简介ELKStack即Elasticsearch + Logstas ...
- 使用elk+redis搭建nginx日志分析平台
elk+redis 搭建nginx日志分析平台 logstash,elasticsearch,kibana 怎么进行nginx的日志分析呢?首先,架构方面,nginx是有日志文件的,它的每个请求的状态 ...
- ELK_elk+redis 搭建日志分析平台
这个是最新的elk+redis搭建日志分析平台,今年时间是2015年9月11日. Elk分别为 elasticsearch,logstash, kibana 官网为:https://www.elast ...
- linux下利用elk+redis 搭建日志分析平台教程
linux下利用elk+redis 搭建日志分析平台教程 http://www.alliedjeep.com/18084.htm elk 日志分析+redis数据库可以创建一个不错的日志分析平台了 ...
- 基于springboot+bootstrap+mysql+redis搭建一套完整的权限架构【六】【引入bootstrap前端框架】
https://blog.csdn.net/linzhefeng89/article/details/78752658 基于springboot+bootstrap+mysql+redis搭建一套完整 ...
- docker Redis的主从配置
redis是k-v型nosql数据库,支持字符串(string).列表(list).集合(set).散列(hash).有序集合(zset:形如member:score的散列集合,其中member为成员 ...
- Linux系统下Redis缓存安装配置
Redis是一个高性能的key-value数据库,现时越来越多企业与应用使用Redis作为缓存服务器.楼主是一枚JAVA后端程序员,也算是半个运维工程师了.在Linux服务器上搭建Redis,怎么可以 ...
- Linux系统下安装Redis和Redis集群配置
Linux系统下安装Redis和Redis集群配置 一. 下载.安装.配置环境: 1.1.>官网下载地址: https://redis.io/download (本人下载的是3.2.8版本:re ...
随机推荐
- leetcode230. 二叉搜索树中第K小的元素
题目链接: https://leetcode-cn.com/problems/kth-smallest-element-in-a-bst/ 题目: 给定一个二叉搜索树,编写一个函数 kthSmalle ...
- XSS - Pikachu
概述: Cross-Site Scripting 简称为"CSS",为避免与前端叠成样式表的缩写"CSS"冲突,故又称XSS.一般XSS可以分为如下几种常见类型 ...
- 通过logmnr找到被修改前的存储过程
1.找到存储过程被修改时的归档日志 SELECT NAME FROM V$ARCHIVED_LOG WHERE FIRST_TIME BETWEEN TO_DATE('20191118080000', ...
- 一文读懂k8s之Pod安全策略
导读 Pod容器想要获取集群的资源信息,需要配置角色和ServiceAccount进行授权.为了更精细地控制Pod对资源的使用方式,Kubernetes从1.4版本开始引入了PodSecurityPo ...
- 1.5V转3.3V升压电路图和1.5V转3.3V的电源芯片
1.5V转3.3V的电路图需要材料:PW5100芯片,2个贴片电容,1个贴片电感.即可组成一个DC-DC同步升压高效率电路图,可提供稳定的3.3V输出电压. 1.5V转3.3V的电源芯片 1.5V转3 ...
- Docker容器日志清理方案
Docker容器在运行过程中会产生很多日志,久而久之,磁盘空间就被占满了,以下分享docker容器日志清理的几种方法 删除日志 在linux上,容器日志一般存放在 /var/lib/docker/co ...
- 糊糊的学习笔记--Fiddle抓包
Fiddle简述 Fiddler是一个http调试代理,它能 够记录所有的你电脑和互联网之间的http通讯,Fiddler 可以也可以让你检查所有的http通讯,设置断点,以及Fiddle 所有的&q ...
- 一次I/O问题引发的P0重大故障[改版重推] 原创 二马读书 二马读书 8月16日 这是前段时间发的一篇文章,很多读者反馈,文章没有揭示故障发生的详细
一次I/O问题引发的P0重大故障[改版重推] 原创 二马读书 二马读书 8月16日 这是前段时间发的一篇文章,很多读者反馈,文章没有揭示故障发生的详细
- Python学习【第2篇】:基本数据类型(详解)
1.数字 2.字符串中的方法 str test = "xiaoxing"#首字母大写v = test.capitalize()print(v)运行后结果如下Xiaoxing tes ...
- HBase的Write Ahead Log (WAL)
HBase的Write Ahead Log (WAL) 一.预写日志WAL(Write-Ahead-Log) HLog HLogKey LogFlusher LogRoller Replay 问题 二 ...