Redis 一:NoSQL简介与 redis 安装配置

一、 NoSQL简介

  • NoSQL,全名为Not Only SQL,指的是非关系型的数据库
  • 随着访问量的上升,网站的数据库性能出现了问题,于是nosql被设计出来
  •  

NoSQL 是针对【内存级】的读写设计出来的,为了加快内存级的读写速度。

如果数据少、访问人数少,不使用 NoSQL 也无所谓,但是 当关系型数据库中存储的数据越来越多,

访问的人数越来越多时(淘宝双11,12306等),直接去数据库取数据进行计算则会

挤爆服务器(服务器压力大,用户等待时间长),导致宕机。

为了避免这种情况,需要在他们之间加一层缓存,把一些常用的数据(比如 12306 首页等

不怎么变动的数据)存到缓存,用户请求时通过缓存拿数据,如果缓存没有再去关系型数据库拿,

这样就会快得多。

NoSQL 的最大特点是 【以 json(字典) 的格式来维护数据】

优点/缺点

  • 优点:
    • 高可扩展性
    • 分布式计算
    • 低成本
    • 架构的灵活性,半结构化数据
    • 没有复杂的关系
  • 缺点:
    • 没有标准化
    • 有限的查询功能(到目前为止)
    • 最终一致是不直观的程序

分类

类型

部分代表

特点

列存储

Hbase

Cassandra

Hypertable

顾名思义,是按列存储数据的。最大的特点是方便存储结构化和半结构化数据,方便做数据压缩,对针对某一列或者某几列的查询有非常大的IO优势。

文档存储

MongoDB

CouchDB

文档存储一般用类似json的格式存储,存储的内容是文档型的。这样也就有有机会对某些字段建立索引,实现关系数据库的某些功能。

key-value存储

Tokyo Cabinet / Tyrant

Berkeley DB

MemcacheDB

Redis

可以通过key快速查询到其value。一般来说,存储不管value的格式,照单全收。(Redis包含了其他功能)

图存储

Neo4J

FlockDB

图形关系的最佳存储。使用传统关系数据库来解决的话性能低下,而且设计使用不方便。

对象存储

db4o

Versant

通过类似面向对象语言的语法操作数据库,通过对象的方式存取数据。

xml数据库

Berkeley DB XML

BaseX

高效的存储XML数据,并支持XML的内部查询语法,比如XQuery,Xpath。

redis 是其中一种, 通过 键值对 的方式存储数据。

----------------------------------------------------------------------------------------------------------------

【安装】redis

redis-server 安装:

1.redis下载

[root@mysqldb1 ~]# wget http://download.redis.io/releases/redis-3.0.5.tar.gz

2.解压

[root@mysqldb1 ~]# tar xf redis-3.0.5.tar.gz

这样就在当前目录下新建了一个包含发行版源代码的目录,必须cd进入这个目录以继续服务器的编译。

3.编译及安装

进入redis解压目录,执行如下命令编译Redis:

[root@mysqldb1 ~]# cd redis-3.0.5

[root@mysqldb1 redis-3.0.5]# make && make install

也可以指定目录安装:

make prefix=/path/to/installdir install

安装tcmalloc包需指定参数,如make USE_TCMALLOC=yes FORCE_LIBC_MALLOC=yes

因为对一个基本的配置的编译,一般需要1分钟左右的时间,实际需要的时间因你的硬件和选择的模块数量会有很大不同。

4.配置

接着,复制redis.conf到/etc/下,修改配置文件,来配置Redis服务器。

[root@mysqldb1 redis-3.0.5]# cp redis.conf /etc/

--------

redis-server 后台运行:

1.找到redis.conf 并修改 daemonize no 为 daemonize yes 【守护进程】,

这样就可以默认启动就后台运行

vi /etc/redis.conf

2.开启客户端要确保服务端启动

redis-server /etc/redis.conf

3.启动客户端不成功要退出再进行下一步

现在就可以正常访问了

[root@rongle /]# redis-server /etc/redis.conf

[root@rongle /]# redis-cli

redis 127.0.0.1:6379>

------

redis-cli 安装:

pip install redis

[root@localhost /]# whereis redis-cli

redis-cli: 只安装了客户端

【连接】redis,

加上decode_responses=True,写入的键值对中的value为str类型,不加这个参数写入的则为字节类型。

【运行】

  • 启动服务器:在桌面目录

redis-server 按ctrl+c停止

  • 启动客户端:在新终端中运行如下代码

redis-cli

  • 运行命令

ping set 'a' '123'

  • 当添加键值后,发现在当前运行的目录下,创建了一个文件:dump.rdb,这个文件用于将数据持久化存储

配置文件中几个重要的地方 :

daemonize no 守护进程,设置为 yes 才能后台运行

pidfile 存储 pid 的文件的路径

port 端口(默认6379)

bind 127.0.0.1 绑定的 ip (默认 127.0.0.1 )

loglevel notice 日志级别

logfile 日志文件的路径 【当你执行一个操作后,

你可以在这里看到,也可以 看到谁连接 过】

databases 16 数据库,默有 16 个数据库,但是这些数据库没有名字,

直接从 0,1,2....来起名,默认使用 0 这个数据库

save 900 1 完成物理写的时间间隔(把内存当中的东西写到物理上去)

save 300 10 读的话不会做更改,执行写操作时会按照该频度进行写操作

save 60 10000

( 如果你在 900秒 写了一次,就进行一次物理写操作,如果 300秒内进行了 10次写操作,

则在第 300 秒进行一次物理写操作, 如果在60秒进行了 10000 次写操作, 则在第 60秒

进行一次物理写操作)

dbfilename dump.rdb 物理存储文件的 名字,(默认dump.rdb)可以自定义

dir /var/lib/redis 默认的物理存储文件的路径

配置文件中我们可以改的地方 :

守护进程、ip、端口、数据库存储目录、日志存储目录、

猜你喜欢

转载自blog.csdn.net/qq_26128879/article/details/82595134
今日推荐