标签搜索

目 录CONTENT

文章目录

Redis简介及安装.md

小小城
2021-08-22 / 0 评论 / 0 点赞 / 3 阅读 / 4,591 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2022-05-02,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

Redis简介及安装

@[toc]

一、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

在这里插入图片描述

0

评论区