Redis简介及安装
Redis简介及安装
文章目录
- Redis简介及安装
- 一、nosql介绍
- 1.NoSQL
- 2.NoSQL和SQL数据库的比较:
- 二、Redis
- 1.简介
- 2.Redis特性
- 3.Redis 优势
- 4.redis应用场景
- 5.推荐阅读
- 三、redis安装
- 1.在线安装
- 2.下载安装包:
- 四、配置
- 1.配置
- 2.查看
- 3.绑定ip
- 4.端⼝,默认为6379
- 5.是否以守护进程运⾏
- 6.数据⽂件
- 7.数据⽂件存储路径
- 8.⽇志⽂件
- 9.主从复制
- 五、服务端客户端操作命令
- 1.服务器端
- 2.客户端
一、nosql介绍
1.NoSQL
NoSQL:一类新出现的数据库(not only sql)
它的特点:- 不支持SQL语法
- 存储结构跟传统关系型数据库中的那种关系表完全不同,nosql中存储的数据都是KV形式
- NoSQL的世界中没有一种通用的语言,每种nosql数据库都有自己的api和语法,以及擅长的业务场景
- NoSQL中的产品种类相当多:
- Mongodb
- Redis
- Hbase hadoop
- Cassandra hadoop
2.NoSQL和SQL数据库的比较:
适用场景不同:sql数据库适合用于关系特别复杂的数据查询场景,nosql反之
“事务”特性的支持:sql对事务的支持非常完善,而nosql基本不支持事务
- 两者在不断地取长补短,呈现融合趋势
SQL数据库被称为关系型数据库(RDBMS),而NoSQL数据库被称为非关系型数据库或分布式数据库。
- SQL数据库是基于表的数据库,而NoSQL数据库则有基于文档的,键值对的,图形的或基于列式存储的数据库。
SQL数据库的数据结构必须事先先定义好,而NoSQL数据库的数据是动态无结构的。
- SQL数据库的负载能力是以增加硬件配置的垂直扩展方式来增加的,而NoSQL数据库的负载能力可以通过增加数据库服务器的数量来增加(属于水平扩展)。
SQL数据库是使用SQL(结构化查询语言)对数据进行定义和操作的,功能强大,语法统一。而NoSQL数据库是使用UnQL(无结构查询语言),其操作的对象主要是存储在集合中的文档,但UnQL语法不统一
,不同的NoSQL数据库语法各有不同。- 常见的SQL数据库有:MySql,Oracle,Postgres,Sqlite,MS-SQL等。NoSQL常见的有:MongoDB,BigTable,Redis,Hbase,Neo4j等。
对于复杂的查询:SQL非常的擅长,而NoSQL则不擅长。因为NoSQL并没有执行复杂查询的标准接口
。相对于SQL的强大查询能力,NoSQL的查询能力就显得有点捉襟见肘。- 对于所能存储的数据类型:SQL数据库并不太适合分层次的数据存储。 但是,
NoSQL数据库则可以很好的存储分层次的数据,因为它是以键值对的形式存储数据的,类似与JSON数据
。NoSQL数据库更倾向用于大数据。例如Hbase就是一个很好的例子。 - 对于基于大量事务的应用程序:SQL数据库非常适合,因为它更加稳定并且可以保证数据的原子性和一致性。而NoSQL对事务的处理能力有限。
在文档支持方面:所有SQL数据库的厂家对其数据库产品都有很好的支持,并且有许多专家可以帮你部署大型的SQL数据库扩展。而NoSQL现在仅有社区的支持,而可以帮助你部署大型NoSQL数据库扩展的专家也很有限
。在属性方面:SQL数据库遵循ACID(即,原子性,一致性,隔离性,持久性)属性,而NoSQL数据库遵循的是CAP定理(即,一致性,可用性,分区容忍性)
。对于数据库的分类:对于SQL数据库,基于商业渠道SQL数据库可分为开源或闭源产品。对于NoSQL数据库,基于存储数据的基本方式可分为图形数据库,键——值数据库,文档数据库,列式数据库,XML数据库
。
二、Redis
1.简介
Redis是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API
。- 从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。
- Redis是 NoSQL技术阵营中的一员,它通过多种键值数据类型来适应不同场景下的存储需求,借助一些高层级的接口使用其可以胜任,如缓存、队列系统的不同角色
2.Redis特性
Redis 与其他 key - value 缓存产品有以下三个特点:
- Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
- 它也通常被称为数据结构服务器,
因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型
。 - Redis支持数据的备份,即master-slave模式的数据备份。
- 与传统数据库不同的是
Redis 的数据是存在内存中
的,所以存写速度非常快,因此 Redis 被广泛应用于缓存方向。 - Redis为分布式缓存,在多实例的情况下,各实例共用一份缓存数据,缓存具有一致性。
3.Redis 优势
- 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作
。- 原子 – Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。
丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性
。- 支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
支持数据的备份,即master-slave模式的数据备份
。
4.redis应用场景
用来做缓存(ehcache/memcached)——redis的所有数据是放在内存中的(内存数据库)
查询出的数据保存到Redis中,下次查询的时候直接从Redis中拿到数据。不用和数据库进行交互。
- 可以在某些特定应用场景下替代传统数据库——比如社交类的应用
- 在一些大型系统中,巧妙地实现一些特定的功能:session共享、购物车
什么数据会存到redis数据库中
?
主要是热点数据,不会经常改变的,一般是常量
比如登录验证的cookie,购物车,历史浏览记录都(只要具有一定时间的生命周期)
比如首页的商品信息,一般不会变。
比如秒杀的商品信息,一般也不会变。
比如地图的经纬度信息,一般也不会变。
- 用户的关注列表,粉丝列表,消息列表等功能都可以用 Redis 的 List 结构来实现
- Redis 可以非常方便的实现如共同关注、共同粉丝、共同喜好等功能(Set 类似与列表,但可自动排重的)
Redis不但提供了无需集合(Sets),还很体贴的提供了有序集合(Sorted Sets),因此,各种排行榜数据基本上都会使用Redis提供的Sorted Sets来实现
5.推荐阅读
redis官方网站
redis中文官方网站
命令参考
三、redis安装
1.在线安装
- 直接输入命令
sudo apt-get install redis-server
安装完成后,Redis服务器会自动启动。
使用ps -aux|grep redis命令可以看到服务器系统进程默认端口6379
redis 2890 0.2 0.1 41872 6064 ? Ssl 14:17 0:07 /usr/bin/redis-server 127.0.0.1:6379
hzlarm 3222 0.0 0.0 11324 780 pts/2 S+ 15:02 0:00 grep --color=auto redis
- 使用netstat -nlt|grep 6379命令可以看到redis服务器状态
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN
使用sudo /etc/init.d/redis-server status命令可以看到Redis服务器状态
2.下载安装包:
- 下载:打开redis官方网站,推荐下载稳定版本(stable)
wget http://download.redis.io/releases/redis-5.0.5.tar.gz
解压tar xzf redis-5.0.5.tar.gz
- 复制:
推荐放到usr/local目录下sudo mv redis-5.0.5 /usr/local/redis
- 进入redis目录 cd /usr/local/redis/
- 生成:sudo make失败则 使用 sudo make MALLOC=libc后再sudo make
- 测试 sudo make test 这段运行时间会较长
安装:将redis的命令安装到/usr/bin/目录sudo make install
- 运行 redis-server
- 按ctrl+c停止
- 查看
cd /usr/local/bin
ls -all
redis-server redis服务器
redis-cli redis命令行客户端
redis-benchmark redis性能测试工具
redis-check-aof AOF文件修复工具
redis-check-rdb RDB文件检索工具
四、配置
1.配置
Redis的配置信息在/etc/redis/redis.conf下。
2.查看
sudo vi /etc/redis/redis.conf
3.绑定ip
绑定ip:如果需要远程访问,可将此⾏注释,或绑定⼀个真实ip
bind 127.0.0.1
4.端⼝,默认为6379
port 6379
5.是否以守护进程运⾏
如果以守护进程运⾏,则不会在命令⾏阻塞,类似于服务
如果以⾮守护进程运⾏,则当前终端被阻塞
设置为yes表示守护进程,设置为no表示⾮守护进程
推荐设置为yes
daemonize yes
6.数据⽂件
dbfilename dump.rdb
7.数据⽂件存储路径
dir /var/lib/redis
8.⽇志⽂件
logfile /var/log/redis/redis-server.log
数据库,默认有16个 database 16
9.主从复制
# 类似于双机备份。
slaveof
参考资料
redis配置信息
五、服务端客户端操作命令
1.服务器端
服务器端的命令为redis-server
- 可以使⽤help查看帮助⽂档
推荐使⽤服务的⽅式管理redis服务
redis-server --help
- 启动
sudo service redis start
- 停⽌
sudo service redis stop
- 重启
sudo service redis restart
个人习惯
- ps -ef|grep redis 查看redis服务器进程
- sudo kill -9 pid 杀死redis服务器
sudo redis-server /etc/redis/redis.conf 指定加载的配置文件
2.客户端
客户端的命令为redis-cli
可以使⽤help查看帮助⽂档
redis-cli --help
连接redis
redis-cli
- 运⾏测试命令
ping
- 切换数据库
数据库没有名称,默认有16个,通过0-15来标识,连接redis默认选择第一个数据库
select n
Redis简介及安装相关推荐
- 【赵强老师】Redis简介和安装配置
先看视频. [赵强老师]Redis简介和安装配置 什么是Redis? Redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串 ...
- Redis简介与安装
Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库.缓存和消息中间件. 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(list ...
- Redis (一)Redis简介、安装部署
Redis是一个开源的,先进的 key-value 存储可用于构建高性能,可扩展的 Web 应用程序的解决方案. 既然是key-value,对于Java开发来说更熟悉的是Map集合.那就有问题了,有M ...
- Redis简介与基本数据类型
Redis 文章目录 Redis 一.简介 1.Redis简介 2.安装与使用 二.Redis数据类型 1.string类型 2.hash类型 3.list类型 4.set类型 5.sorted_se ...
- Redis简介、与memcached比较、存储方式、应用场景、生产经验教训、安全设置、key的建议、安装和常用数据类型介绍、ServiceStack.Redis使用(1)...
1.NOSQL简介 nosql的产生并不是要彻底的代替关系型数据库,而是作为传统关系型数据库的一个补充. Facebook和360使用Cassandra来存储海量社交数据 Twitter在其url抓取 ...
- Redis详解(一)------ redis的简介与安装
工作中一直在用 Redis,但是一直没有进行系统的总结,这个系列的博客将整体的介绍 Redis 的用法. 1.Redis 的简介 Redis:REmote DIctionary Server(远程字典 ...
- NoSQL和Redis简介及Redis在Windows下的安装和使用教程
转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/103.html?1455869099 NoSQL简介 介绍redis前,我 ...
- redis指定配置文件启动_Redis【简介amp;安装篇】
1 Redis简介 1.1 Redis是什么 Redis是一个开源的,使用ANSI C 编写的,高性能Key-Value的NoSQL数据库. 1.2 Redis特点 i. 基于内存. ii. 可持久化 ...
- @Redis(redis简介,下载与安装配置,基本操作)
title: Redis author: Xoni tags: Redis categories: java学习 Redis abbrlink: bae4ff13 Redis基础 1. Redis 简 ...
最新文章
- 使用rancher对Docker容器服务升级
- python笔记本-如何用Python在笔记本电脑上分析100GB数据(下)
- C#.NET禁止一个程序启动多个实例
- 有关数据治理的本质及实践,看这一篇就够了【转】
- kali linux学习笔记
- 生活随笔:态度需要端正
- Spartacus同SAP Commerce Cloud交互的示意图
- 看OpenCV如何在python中实现图像检测!
- HTML_CSS_JS_JSON
- MobaXterm中修改服务器ip,如何使用mobaxterm登录云服务器
- [JavaScript]JavaScript处理iframe的动作
- IoT 时代,安全危机爆发
- Jedis 常用API使用
- 深入解读Linux进程调度系列(总览)
- LinuxCNC学习-HAL库介绍
- Html控制大华摄像头
- 让小米路由器变成一个聪明的WIFI(1):有人回家,它就发短信告诉你
- WinForm 子窗体 调用 父窗体 方法
- 用Jdk自带工具keytool生成受信任的证书
- 实用工具(锐捷无线篇)-WIS
热门文章
- 文件表单带数据一起提交spring_基于 Spring 实现管道模式的最佳实践
- ‘复杂变简单‘的代码例子
- JAVA数据类型及字符编码
- Ubuntu服务器上部署kodexplorer私有云盘
- 《CDN 之我见》原理篇——CDN的由来与调度
- caioj 1066 动态规划入门(一维一边推4:护卫队)(分组型dp总结)
- storm 动态设置并发度
- 【知乎】怎么成为一个优秀的程序员,而不是一个优秀的码农?
- 超级组合:用户中心+云平台
- 微观经济学现代观点(Hal R. Varian) 复习题 1.1