什么是Redis?
- Redis 是用C语言开发的一个开源的高性能键值对( key-value )内存数据库,它是一种NoSQL 数据库。
- 它是【单进程单线程】的内存数据库,所以说不存在线程安全问题。
- 它可以支持并发 10W QPS,所以说性能非常优秀。之所以单进程单线程性能还这么好,是因为底层采用了【IO多路复用(NIO思想)】
- 相比Memcache这种专业缓存技术,它有更优秀的读写性能,及丰富的数据类型。
- 它提供了五种数据类型来存储【值】:字符串类型(string)、散列类型(hash)、列表类型(list)、集合类型(set)、有序集合类型(sortedset、zset)
Redis官网
- 官网地址:http://redis.io/
- 中文官网地址:http://www.redis.cn/
- 下载地址:http://download.redis.io/releases/
什么是NoSQL?
- NoSQL ,即Not-Only SQL (不仅仅是SQL ),泛指非关系型的数据库。
- 什么是关系型数据库?数据结构是一种有行有列的数据库
- NoSQL 数据库是为了解决高并发、高可用、高可扩展、大数据存储问题而产生的数据库解决方案。
- NoSQL 可以作为关系型数据库的良好补充,但是不能替代关系型数据库。
MySQL(关系型数据库) ---> NoSQL ---> NewSQL(TiDB)
NoSQL数据库分类
- 键值(Key-Value)存储数据库
相关产品: Tokyo Cabinet/Tyrant 、Redis 、Voldemort 、Berkeley DB
典型应用: 内容缓存,主要用于处理大量数据的高访问负载。
数据模型: 一系列键值对
优势: 快速查询
劣势: 存储的数据缺少结构化
- 列存储数据库
相关产品: Cassandra , HBase , Riak
典型应用:分布式的文件系统
数据模型:以列簇式存储,将同一列数据存在一起
优势:查找速度快,可扩展性强,更容易进行分布式扩展
劣势:功能相对局限
- 文档型数据库
相关产品: CouchDB 、MongoDB
典型应用: Web 应用(与Key-Value 类似, Value 是结构化的)
数据模型: 一系列键值对
优势:数据结构要求不严格
劣势:
- 图形( Graph )数据库
相关数据库: Neo4J 、InfoGrid 、Infinite Graph
典型应用:社交网络
数据模型:图结构
优势:利用图结构相关算法。
劣势:需要对整个图做计算才能得出结果,不容易做分布式的集群方案。
Redis应用场景
- 内存数据库(登录信息、购物车信息、用户浏览记录等)
- 缓存服务器(商品数据、广告数据等等)(最多使用)
- 解决分布式集群架构中的session 分离问题( session 共享)
- 任务队列(秒杀、抢购、12306等等)
- 分布式锁的实现
- 支持发布订阅的消息模式
- 应用排行榜(有序集合)
- 网站访问统计
- 数据过期处理(可以精确到毫秒)
Redis单机版安装配置
Redis 没有官方的Windows 版本,所以建议在Linux 系统上安装运行,我们使用 CentOS 7 ( Linux 操作系统的一个系列)作为安装环境。
Redis安装
第一步:检查并安装C 语言需要的GCC 环境
yum gcc-c
yum install -y gcc-c++
yum install -y wget
第二步:下载并解压缩Redis 源码压缩包
wget http://download.redis.io/releases/redis-5.0.5.tar.gz
tar -zxf redis-5.0.5.tar.gz

第三步:编译Redis 源码,进入redis-5.0.4 目录,执行编译命令
第四步:安装Redis ,需要通过PREFIX 指定安装路径
make & make install prefix=/wang/server/redis

报错

make malloc=libc & make install prefix=/wang/server/redis
备注:编译前必须先确保编译目标路径文件夹存在。
解释:分配器allocator, 如果有MALLOC 这个 环境变量, 会有用这个环境变量的 去建立Redis。
而且libc 并不是默认的 分配器, 默认的是 jemalloc, 因为 jemalloc 被证明 有更少的 fragmentation problems 比libc。
但是如果你又没有jemalloc 而只有 libc 当然 make 出错。 所以加这么一个参数,运行如下命令:make MALLOC=libc
Redis启动
前端启动
启动命令: redis-server ,直接运行bin/redis-server 将以前端模式启动
关闭命令: ctrl+c
启动缺点:客户端窗口关闭则redis-server 程序结束,不推荐使用此方法
启动图例:

后端启动(守护进程启动)
第一步:拷贝redis-5.0.4/redis.conf 配置文件到Redis 安装目录的bin 目录
cp /root/redis-5.0.4/redis.conf /wang/server/redis/bin/
Linux VIM常用命令是ESC,然后:wq(保存并退出),:q!(不保存并强制退出)
删除文件夹: rm -rf 文件名
新建文件夹:mkdir 文件名
按ESC键 跳到命令模式,然后:
:w 保存文件但不退出vi
:w file 将修改另外保存到file中,不退出vi
:w! 强制保存,不推出vi
:wq 保存文件并退出vi
:wq! 强制保存文件,并退出vi
q: 不保存文件,退出vi
:q! 不保存文件,强制退出vi
:e! 放弃所有修改,从上次保存文件开始再编辑
搜索字符串:在命令模式下输入/然后输入你需要查找的字符串即可。向光标之下寻找你所输入的字符串
vim常用操作
1、正常模式
yy 复制当前行
nyy 复制从当前行开始后的n行
p 粘贴已复制的内容
dd 删除当前行
ndd 删除从当前行开始后的n行
2、插入模式
i 小写字母i,在光标位置插入
a 小写字母a,在光标的下一个位置插入
I 大写字母I,在光标所在行的第一个非空格处插入
A 大写字母A,在光标所在行的最后一个字符处插入
o 小写字母o,在光标所在行的下一行处插入新行
O 大写字母O,在光标所在行的上一行处插入新行
r 小写字母r,替换光标所在处的字符一次
R 大写字母R,持续替换光标所在处的字符,直到按下ESC
3、命令行模式
按 : 进入命令模式
:/xyz 搜索字符串xyz
:%s/x/y 将每行中第一个x替换成y
:%s/x/y/g 将每行中所有的x替换成y
:n,ms/x/y 将第n-m行的x替换成y
:!ifconfig 执行命令ifconfig
:w 保存文件
:w! 强制保存文件(前提是用户有修改文件访问权限的权限)
:q 退出缓冲区
:q! 强制退出缓冲区而不保存
:wq 保存文件并退出缓冲区
:ZZ 保存文件并且退出
:wq! 强制保存文件并退出缓冲区(前提是用户有修改文件访问权限的权限)
:w <filename> 另存为名为filename文件
:n1,n2 w <filename> 将n1行到n2行的数据另存为名为filename文件
: x 如果文件有更改,则保存后退出。否则直接退出。
4、块选择模式
按下 CTRL + v 进入块选择模式
按上下左右箭头选中文本
按 I 或 A 键在选中字符 前 或 后 插入字符,按 d 或 x 删除当前选中的字符
按ESC键退出即生效
第二步:修改redis.conf
vim redis.conf
# 将`daemonize`由`no`改为`yes`
daemonize yes
# 默认绑定的是回环地址,默认不能被其他机器访问
# bind 127.0.0.1
# 是否开启保护模式,由yes该为no 这个没找见呀?---
protected-mode no
:wq! 强制保存文件,并退出vi
第三步:启动服务
./redis-server redis.conf

Redis命令行客户端
./redis-cli -h 127.0.0.1 -p 6379
如果不指定主机和端口也可以
./redis-cli

后端启动的关闭方式
./redis-cli shutdown
![]()
416

被折叠的 条评论
为什么被折叠?



