Redis快速上手篇(一)(安装与配置)

NoSQL

  NoSQL 是 Not Only SQL 的缩写,意即"不仅仅是 SQL"的意思,泛指非关系型的数据库。强调 Key-Value Stores 和文档数据库的优点。

NoSQL 产品是传统关系型数据库的功能阉割版本,通过减少用不到或很少用的功能,来大幅度提高产品性能

  • 不遵循 SQL 标准。 (添加 insert 修改 update )
  • 不支持 ACID(ACID,是指在可靠数据库管理系统(DBMS)中,事务(transaction)所应该具有的四个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)这是可靠数据库所应具备的几个特性)。
  • 远超于 SQL 的性能。

关系型数据库是结构化的数据库,创建在关系模型(二维表格模型)基础上,一般面向于记录。

过去,关系型数据库(SQL Server、Oracle、MySQL)是数据持久化的唯一选择,但随着发展,关系型数据库存在以下问题。

1.不能满足高性能查询需求

我们使用:Java、.Net 等语言编写程序,是面向对象的。但用数据库都是关系型数据库。存储结构是面向对象的,但是数据库却是关系的,所以在每次存储或者查询数据时,我们都需要做转换。类似 Hibernate、Mybatis 这样的 ORM 框架确实可以简化这个过程,但是在对高性能查询需求时,这些 ORM 框架就捉襟见肘了。

ORM是通过使用描述对象和数据库之间映射的元数据,

只要提供了持久化类与表的映射关系,ORM框架在运行时就能参照映射文件的信息,把对象持久化到数据库中。

2.应用程序规模的变大

网络应用程序的规模变大,需要储存更多的数据、服务更多的用户以及需求更多的计算能力。为了应对这种情形,我们需要不停的扩展。

扩展分为两类:一种是纵向扩展,即购买更好的机器,更多的磁盘、更多的内存等等。另一种是横向扩展,即购买更多的机器组成集群。在巨大的规模下,纵向扩展发挥的作用并不是很大。首先单机器性能提升需要巨额的开销并且有着性能的上限,在 Google 和 Facebook 这种规模下,永远不可能使用一台机器支撑所有的负载。鉴于这种情况,我们需要新的数据库,因为关系数据库并不能很好的运行在集群上。

NoSQL 的适用场景

  • 对数据高并发的读写
  • 海量数据的读写
  • 对数据高可扩展性的

NoSQL 不适用场景

  • 需要事务支持
  • 基于 sql 的结构化查询存储,处理复杂的关系,需要关系查询。

用不着 sql 的和用了 sql 也不行的情况,考虑用 NoSql

常见的 NoSQL 及区别

1,常见的 NoSQL 数据库

区别

1.Memcached

  • 很早出现的 NoSql 数据库
  • 数据都在内存中,一般不持久化
  • 支持简单的 key-value 模式,支持类型单一
  • 一般是作为缓存数据库辅助持久化的数据库(MySQL)

2.Redis

  • 几乎覆盖了 Memcached 的绝大部分功能
  • 数据都在内存中,支持持久化,主要用作备份恢复
  • 除了支持简单的 key-value 模式,还支持多种数据结构的存储,包括 string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和 hash(哈希类型)。
  • 一般是作为缓存数据库辅助持久化的数据库

3.MongoDB

  • 高性能、开源、模式自由(schema free)的文档型数据库
  • 数据都在内存中, 如果内存不足,把不常用的数据保存到硬盘
  • 虽然是 key-value 模式,但是对 value(尤其是 json)提供了丰富的查询功能
  • 支持二进制数据及大型对象
  • 可以根据数据的特点替代 RDBMS,成为独立的数据库。或者配合 RDBMS,存储特定的数

Redis

开源的 key-value 存储系统 端口 6379

Redis 的应用场景

1.数据缓存(提高访问性能)

查询概率 >> 增删改的概率

将一些数据在短时间之内不会发生变化,而且它们还要被频繁访问,为了提高用户的请求速度和降低网站的负载,降低数据库的读写次数,就把这些数据放到缓存中。

2.会话缓存

session cache,主要适用于 session 共享 (string 类型)

3.排行榜/计数器

(NGINX+lua+redis 计数器进行 IP 自动封禁)(zset)

4.消息队列

(构建实时消息系统,聊天,群聊) (list)

5.粉丝 (set)

6.存储对象 (hash)

安装及启动

1.下载 wget

        yum -y wget

2.cd /usr/新建文件夹

3.下载redias

        wget https://download.redis.io/releases/redis-5.0.14.tar.gz

4.安装 redis 所依赖的环境

        yum -y install gcc-c++

5.解压 redis

        tar -zxvf redis-5.0.14.tar.gz

6.进入解压目录

        cd redis-5.0.14/

7.编译与安装

        编译 make

        安装 make PREFIX=/usr/新建文件夹 install (如果不加prefix 默认安装到/usr/local/)

安装成功之后查看redis在哪里安装

        which redis-server

8.启动redis

        cd /usr/local/bin

        ./redis-server

ctrl + c 终止

配置与连接

1.拷贝配置文件到安装目录的 bin

cp /usr/解压的文件夹/redius-5.0.14/redius.conf /usr/local/bin

2. vim /usr/local/bin/redis.conf

3.设置后台启动

daemonize no 改成 yes

4.设置密码(客户端连接的话需要设置密码 如果不需要连接不用设置)

requirepass root 

5.设置远程连接

bind 127.0.0.1 #注释掉绑定本机,才可以远程连接访问

bind 127.0.0.1 修改为  0.0.0.0

6.启动 redis

进入bin目录下 cd /usr/local/bin

启动 ./redis-server ./redis.conf

7.连接redis(没有设置密码可以不输入密码)

./redis-cli -p 6379 -a root

或 ./redis-cli 后 输入 auth root (确认没有修改默认端口并且设置了密码)

8.关闭 redis

./redis-cli shutdown

或 ./redis-cli -p 6379 -a root -h 127.0.0.1 shutdown

9.测试远程

redis-cli -h (虚拟机IP) -p (端口号port) -a (设置的密码)

ping 测试

quit 关闭连接(connection)

外部连接AnotherRedisDesktopManager

 AnotherRedisDesktopManager 是一个更快、更好、更稳定的Redis桌面 -LRB- GUI -RRB- 管理客户端,兼容Windows、Mac、Linux,性能出众,轻松加载海量键值

 AnotherRedisDesktopManager下载

github:

Releases · qishibo/AnotherRedisDesktopManager (github.com)

Gitee:

AnotherRedisDesktopManager 发行版 - Gitee.com

配置服务启动(使用 systemctl 的方法)

服务启动的时候 daemonize 改为 no

在/lib/systemd/system 目录下创建一个脚本文件 redis.service

[Unit]
Description=Redis
After=network.target
[Service]
ExecStart=/usr/local/bin/redis-server /usr/local/bin/redis.conf
ExecStop=/usr/local/bin/redis-cli -h 127.0.0.1 -p 6379 -a root shutdown
[Install]
WantedBy=multi-user.target

systemctl daemon-reload 刷新配置

systemctl enable redis 开机自启

systemctl status redis redis 状态

systemctl start redis 开启 redis

systemctl stop redis 关闭 redis

systemctl disable redis 禁止开机自启

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值