NoSQL数据库之Redis数据库:Redis的介绍与安装部署

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: NoSQL(NoSQL = Not Only SQL),它指的是非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显的力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。 NoSQL的特点:特点一:是以key-value形式存储,和传统


NoSQLNoSQL = Not Only SQL,它指的是非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显的力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。

 

NoSQL的特点:

特点一:

是以key-value形式存储,和传统的关系型数据库不一样,不一定遵循传统数据库的一些基本要求,比如说遵循SQL标准、ACID属性、表结构等等,这类数据库主要有以下特点:非关系型的、分布式的、开源的、水平可扩展的。

 

特点二:

  1. 处理超大量的数据比Mysql等有优势。

  2. 运行在便宜的PC服务器集群上。

  3. 击碎了性能瓶颈。(MySQL的时候需要很多优化,但是NoSQL不需要,性能非常高)

 

特点三(性能方面):

  1. 对数据高并发读写。(对MySQL进行上万次读的请求可能顶得住,但是如果对MySQL进行上万次的写的时候,硬盘IO要求就比较高,效率就比较低下,但是NoSQL就比较方面。)

  2. 对海量数据的高效率存储和访问。

  3. 对数据的高可扩展和高可用性。(NoSQL可以增加一个服务器节点,使用NoSQL来做分布式比较简单,因为没有固定的表结构,所以更改比较方便)。

 

Redis的介绍:

  1. Redis是一个开源的,先进的key-value存储。它通常被称为数据结构服务器,因为键可以包含字符串,哈希,链表,集合和有序集合。

  2. Redis是一个key-value存储系统。它支持存储的value类型很多,包括string(字符串)list(链表)set(集合)zset(有序集合)。这些数据类型都支持push/popadd/remove及取交集和并集及更丰富的操作,Redis支持各种不同方式的序列。为了保证效率,都是缓存在内存中的,它也可以周期性的吧更新的数据写入磁盘或者吧修改操作写入追加的记录文件。

 

Redis的使用场合:

在新浪微博Redis的部署场景很多,大概分为如下2种:

  1. 应用程序直接访问Redis数据库。

  1. 应用程序直接访问Redis,只有当Redis访问失败时才访问MySQL

 

把大象装冰箱的过程:

   Redis数据库提供多中灵活的数据结构和数据操作,为不同的大象构建不同的冰箱。

 

Redis具体的适用场景:

  1. 取最新N个数据库的操作

  2. 排行榜应用,取TOP N操作

  3. 需要精确设定过期时间的应用

  4. 计数器应用

  5. Uniq操作,获取某段时间所有数据排重值

  6. 实时系统,反垃圾系统。

  7. Pub/Sub构建实时消息系统(Redis独有的发布和订阅系统)

  8. 构建队列系统

  9. 缓存。

 

Redis的安装与部署

第一步:

Redis的官方下载站是:http://redis.io/download

最好使用Stable版本(稳定版本)。

 

第二步:编译源程序

tar zxvf redis-2.8.19.tar.gz

cd redis-2.8.19

make

cd src && make install  (注意权限问题)

网上安装方式:

$ wget http://download.redis.io/releases/redis-2.8.19.tar.gz

$ tar xzf redis-2.8.19.tar.gz

$ cd redis-2.8.19

$ make

 

 

步骤三:

移动文件,便于管理:

mkdir –p /usr/local/redis/bin

mkdir –p /usr/local/redis/etc

mv /home/toto/redis/redis-2.8.19/redis.conf/usr/local/redis/etc/

cd src

mv mkreleasehdr.sh redis-benchmarkredis-check-aof redis-check-dump redis-cli redis-server /usr/local/redis/bin/   (也就是说移动的是所有的可执行的文件)

 

第四步:启动Redis服务:

/usr/local/redis/bin/redis-server (或者到/usr/local/redis/bin目录下,执行:./redis-server)

可以指定配置文件:

/usr/local/redis/etc/redis.conf (可以在./redis-server后面加上这个配置文件)

Redis服务端的默认连接端口是6379 mongodb的端口号是:2701728017端口)

 

第五步:

客户端连接:/usr/local/redis/bin/redis-cli (cliclient的缩写)

退出客户端的方式是通过exit或者通过quit的方式。

 

步骤六:

停止Redis实例

我们可以使用/usr/local/redis/bin/redis-cli然后再

shutdown

也可以使用pkill redis-server  或者kill -9来实现。

 

Redis的配置:

daemonize:如果需要在后台运行,把该项改为yes

pidfile:配置多个pid的地址默认在/var/run/redis.pid

bind:绑定ip,设置后只接受来自该ip的请求

port:监听端口,默认为6379

timeout:设置客户端连接时的超时时间,单位为秒

loglevel:分为4级,debugverbosenoticewarning

logfile:配置log文件地址

databases:设置数据库的个数,默认使用的数据库为0

save:设置redis进行数据库镜像的频率。(备份数据)

rdbcompression:在进行镜像备份时,是否进行压缩

dbfilename:镜像备份文件的文件名

dir:数据库镜像备份的文件放置路径

slaveof:设置数据库为其它数据库的从数据库。

masterauth:主数据库连接需要的密码验证。

requirepass:设置登录时需要使用的密码。

maxclients:限制同时连接的客户数量。

maxmemory:设置redis能够使用的最大内存。

appendonly:开启append only模式。

appendfsync:设置对appendonly.aof文件进行同步的频率。

vm-enabled:是否开启虚拟内存支持。

vm-swap-file:设置虚拟内存的交换文件路径。

vm-max-memory:设置redis使用的最大物理内存大小。

vm-page-size:设置虚拟内存的页的大小

vm-pages:设置交换文件的总的page数量

vm-max-threads设置VMIO同时使用的线程数量。

glueoutputbuf:把小的输出缓存存放在一起。

hash-max-zipmap-entries:设置hash的临界值

activerehashing:重新hash

查看进程的方式:ps –ef | grep “redis”

查看端口的方式:netstat -tunpl | grep 6379

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

redis服务器安装(其他方式)

用源码工程来编译安装

1/ 到官网下载最新stable版

2/ 解压源码并进入目录  tar -zxvf    redis-2.8.19.tar.gz  -C  ./redis-src/

3/ make

如果报错提示缺少gcc,则安装gcc :  yum install -y gcc

如果报错提示:Newer version ofjemalloc required

则在make时加参数:make MALLOC=libc

 

4/ 安装redis,指定安装目录,如 /usr/local/redis

make PREFIX=/usr/local/redis install

 

6/ 拷贝一份配置文件到安装目录下

切换到源码目录,里面有一份配置文件redis.conf,然后将其拷贝到安装路径下

cp redis.conf /usr/local/redis/

 

7/ 启动redis

cd /usr/local/redis

bin/redis-server redis.conf   (如果想后台进程运行,修改:daemonize yes)

 

8 连接redis

另开一个xshell,然后:

#cd /usr/local/redis/

[root@hadoop redis]# bin/redis-cli 

127.0.0.1:6379>


注意:为了让机器能够远程连接服务器上的redis,需要将redis.conf中的bind值改成访问机器的ip地址,不要用127.0.0.1


1、如果想远程访问redis,需要对redis配置ip

配置的方式是:

cd /usr/local/redis

vim redis.conf

将bind的id换成真实的ip地址,比如:

bind 192.168.106.81

2、在集群配置中,要对redis配置密码,修改的配置是:

cd /usr/local/redis

vim redis.conf

requirepass accountOne    (这里设置一个密码:accountOne)

3、另外若想远程访问,需要将6379的防火墙端口号放开

bin/redis-cli -h 192.168.106.81 -p 6379    通过这种方式可以连接到192.168.106.81这台服务器上的redis.   注意:若想让它能够被连同192.168.106.81这台服务器上的redis.conf的bind属性值要改成192.168.106.81



相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
17天前
|
JSON NoSQL MongoDB
理解Nosql数据库的mongodb
【5月更文挑战第5天】MongoDB是2009年发布的一款通用型NoSQL数据库,结合了关系模型和NoSQL的优点,适用于各种现代应用。其特点包括图形界面、数据服务、云基础设施集成(AWS, Azure, Google Cloud)。它具备全面的查询能力、ACID事务、可调整的一致性保证,并有多语言驱动及工具,可在任何地方运行。
79 4
|
3天前
|
NoSQL MongoDB 数据库
使用MongoDB进行NoSQL数据库管理
【5月更文挑战第29天】MongoDB是流行的NoSQL数据库,以其文档存储、动态模式、高性能和丰富查询功能著称。它采用BSON格式,支持灵活的数据结构。基本操作包括安装、连接、创建数据库和集合、插入/查询/更新/删除文档。最佳实践涉及合理设计数据模型、使用索引、监控调优、备份恢复及确保安全性。MongoDB为复杂应用提供了高效的数据管理解决方案。
|
3天前
|
存储 缓存 NoSQL
Redis与数据库同步指南:订阅Binlog实现数据一致性
本文由开发者小米分享,探讨分布式系统中的一致性问题,尤其是数据库和Redis一致性。文章介绍了全量缓存策略的优势,如高效读取和稳定性,但也指出其一致性挑战。为解决此问题,提出了通过订阅数据库的Binlog实现数据同步的方法,详细解释了工作原理和步骤,并分析了优缺点。此外,还提到了异步校准方案作为补充,以进一步保证数据一致性。最后,提醒在实际线上环境中需注意日志记录、逐步优化和监控报警。
30 3
|
8天前
|
NoSQL 关系型数据库 数据库
Redis -- 数据库管理
Redis -- 数据库管理
19 0
|
11天前
|
存储 NoSQL 分布式数据库
大数据存储技术(4)—— NoSQL数据库
大数据存储技术(4)—— NoSQL数据库
79 1
|
14天前
|
NoSQL Shell MongoDB
NoSQL数据使用指令和引擎连接数据库实例
【5月更文挑战第8天】本文介绍了MongoDB的本地使用和常用操作,包括通过mongo shell连接数据库、显示数据库和集合,以及副本集设置。最后提到了MongoDB的日志功能和顶点集的使用,如capped collection的创建和管理。
50 3
|
14天前
|
存储 缓存 NoSQL
NoSQL缓存数据库的使用场景实例和命令速查表
【5月更文挑战第8天】Redis 是一个内存数据结构服务,用 C 编写,支持五种数据结构,不仅限于键值对。它用于缓存、消息队列、订阅/发布系统等,提供持久化、主从复制和集群支持。了解其核心数据结构和应用场景是有效利用 Redis 的关键。
70 3
NoSQL缓存数据库的使用场景实例和命令速查表
|
17天前
|
NoSQL atlas MongoDB
Nosql数据库MongoDB的使用场景
【5月更文挑战第5天】 MongoDB是全球性的多云数据库,可在私有、公共和混合云中运行,提供高可用性、扩展性和合规性。 安全特性包括认证、授权、审计、网络隔离和加密。可提供跨云操作、可视化工具、搜索功能和数据湖支持,适用于现代应用开发,包括边缘数据处理。
49 1
|
17天前
|
存储 NoSQL Redis
Redis源码、面试指南(5)多机数据库、复制、哨兵、集群(下)
Redis源码、面试指南(5)多机数据库、复制、哨兵、集群
233 1
|
17天前
|
监控 NoSQL Redis
Redis源码、面试指南(5)多机数据库、复制、哨兵、集群(上)
Redis源码、面试指南(5)多机数据库、复制、哨兵、集群
281 0