REDIS系列一开篇
目次
REDIS系列一开篇
1.NoSQL简介
1.1 什么是NoSQL?
1.2 我们为什么使用NoSQL ?
1.3 RDBMS vs NoSQL
1.4 NoSQL 产品
NoSQL产品的显著特点:
编辑 1.5 NoSQL 数据库分类
1.6NoSQL 存储范例及特点
2.Redis
2.1 Redis简介
2.2 Redis作用
2.3 Redis下载网站
2.4Redis使用群体
2.5Redis的摆设场景
1.应用程序直接访问 Redis 数据库
编辑
2. 应用程序直接访问 Redis,只有当 Redis 访问失败时才访问 MySQL编辑
2.6Redis与其他数据库和软件的对比【了解一下;后续详解】
3. Redis安装【基于CentOS 7.3 x86-64 系统安装 】
S1:rpm包安装
配置epel的yum源
在线yum安装
安装最新版本使用remi
启动服务
验证测试
登录
S2:源码安装
下载
解压
安装
启动
S3:Redis命令行客户端
发送命令
命令返回值
S4:源码配置服务脚本:
1.NoSQL简介
1.1 什么是NoSQL?
NoSQL,指的是非关系型的数据库。NoSQL有时也称作Not Only SQL的缩写,是对差别于传统的关系型数据库的数据库管理系统的统称。
NoSQL用于超大规模数据的存储。
(例如谷歌或Facebook天天为他们的用户网络万亿比特的数据)。这些范例的数据存储不必要固定的模式,无需多余利用就可以横向扩展
1.2 我们为什么使用NoSQL ?
- 本日我们可以通过第三方平台(如:Google,Facebook等)可以很容易的访问和抓取数据。
- 用户的个人信息,交际网络,地理位置,用户生成的数据和用户利用日志已经成倍的增长。我们假如要对这些用户数据进行发掘,那SQL数据库已经不适合这些应用了, NoSQL数据库的发展也却能很好的处置惩罚这些大的数据。
- 随着互联网 web2.0 网站的兴起,传统的关系数据库在应付 web2.0 网站,特别是超大规模和高并发的SNS 范例的 web2.0 纯动态网站已经显得力不从心,暴露了很多难以降服的问题,而非关系型的数据库 则由于其本身的特点得到了非常敏捷的发展。
- NoSQL 数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用困难。
1.3 RDBMS vs NoSQL
RDBMS vs NoSQL
NoSQLRDBMS 代表着不仅仅是SQL高度构造化结构化数据没有声明性查询语言结构化查询语言(SQL)没有预定义的模式数据和关系都存储在单独的表中键 - 值对存储,列存储,文档存储,图形数据库数据利用语言,数据定义语言终极一致性,而非ACID属性严格的一致性非结构化和不可预知的数据基础事件CAP定理高性能,高可用性和可伸缩性
1.4 NoSQL 产品
常见的NoSQL产品:redis、memcache、mongdb等
NoSQL产品的显著特点:
1、NoSQL产品一般不使用严格的表关系;
2、NoSQL产品的数据查询一般不消在sql上;
1.5 NoSQL 数据库分类
NoSQL 数据库分类
键值数据库列族数据库文档数据库图形数据库 应用内容缓存分布式数据存储与管理存储、索引并管理面向文档的数据或者雷同的半结构化数据大量复杂、互毗连、低结构化的图结构场合,如交际网络、推荐系统等缺点无法存储结构化信息、条件查询效率较低缺乏统一的查询语言复杂性高、只能支持一定的数据规模长处扩展性好、灵活性好、大量写利用时性能高查找速度快、可扩展性强、容易进行分布式扩展、复杂性低性能好、灵活性高、复杂性低、数据结构灵活活性高、支持复杂的图形算法、可用于构建复杂的关系图谱
1.6NoSQL 存储范例及特点
NoSQL存储范例及特点
范例 部分代表 特点列存 储Hbase Cassandra Hypertable顾名思义,是按列存储数据的。最大的特点是方便存储结构化 和半结构化数据,方便做数据压缩,对针对某一列或者某几列 的查询有非常大的IO优势。 文档 存储MongoDB CouchDB 文档存储一般用雷同json的格式存储,存储的内容是文档型 的。这样也就有有时机对某些字段建立索引,实现关系数据库 的某些功能。 keyvalue 存储 Tokyo Cabinet / Tyrant Berkeley DB MemcacheDB Redis 可以通过key快速查询到其value。一般来说,存储不管value 的格式,照单全收。(Redis包含了其他功能)图存储Neo4J FlockDB 图形关系的最佳存储。使用传统关系数据库来解决的话性能低 下,而且设计使用不方便。对象 存储 db4o Versant 通过雷同面向对象语言的语法利用数据库,通过对象的方式存 取数据。 xml 数据 库Berkeley DB XML BaseX 高效的存储XML数据,并支持XML的内部查询语法,比如 XQuery,Xpath。
2.Redis
2.1 Redis简介
(1)全称:mote ctionary erver(远程字典服务器)。是完全开源免费的,用C语言编写的, 遵守 BSD协议。是一个高性能的(key/value)分布式内存数据库,基于内存运行并支持恒久化的NoSQL数据库,是当前最热门的NoSql数据库之一,也被人们称为数据结构服务器。
(2)Redis 与其他 key - value 缓存有以下三个特点
- Redis支持数据的恒久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用
- Redis不仅仅支持简朴的key-value范例的数据,同时还提供list,set,zset,hash等数据结构的存储
- Redis支持数据的备份,即master-slave模式的数据备份
2.2 Redis作用
Redis作用
内存存储和恒久化:redis支持异步将内存中的数据写到硬盘上,同时不影响继续服务取最新N个数据的利用,如:可以将最新的10条评论的ID放在Redis的List集合里面 模拟雷同于HttpSession这种必要设定逾期时间的功能 发布、订阅消息系统定时器、计数器 2.3 Redis下载网站
- Http://redis.io/
- Http://www.redis.cn/
2.4Redis使用群体
现在全球最大的 Redis 用户是新浪微博,在新浪有 200 多台物理机,400 多个端口正在运行着 Redis, 有 +4G 的数据跑在 Redis 上来为微博用户提供服务。
2.5Redis的摆设场景
1.应用程序直接访问 Redis 数据库
2. 应用程序直接访问 Redis,只有当 Redis 访问失败时才访问 MySQL
2.6Redis与其他数据库和软件的对比【了解一下;后续详解】
数据库和缓存服务器的特性与功能
名称范例数据存储选项查询范例附加功能MySQL关系数据库每个数据库可以包 含多个表,每个表 可以包含多个行; 可以处置惩罚多个表的 视图(view);支 持空间(spatial) 和第三方扩展SELECT、 INSERT、 UPDATE、 DELETE、函数、 存储过程支持ACID性质 (必要使用 InnoDB),主从 复制和主主复制 (master/master replication)memcached使用内存存 储的键值缓 存键值之间的映射创建命令、读取 命令、更新命 令、删除命令以 及其他几个命令为提拔性能而设的 多线程服务器MySQL关系数据库每个数据库可以包 含多个表,每个表 可以包含多个行; 可以处置惩罚多个表的 视图(view);支 持空间(spatial) 和第三方扩展SELECT、 INSERT、 UPDATE、 DELETE、函数、 存储过程支持ACID性质 (必要使用 InnoDB),主从 复制和主主复制 (master/master replication)PostgreSQL关系数据库每个数据库可以包 含多个表,每个表 可以包含多个行; 可以处置惩罚多个表的 视图;支持空间和 第三方扩展;支持 可定制范例SELECT、 INSERT、 UPDATE、 DELETE、内置函 数、自定义的存 储过程支持ACID性质, 主从复制,由第三 方支持的多主复制 (multi-master replication)MongoDB使用硬盘存 储(ondisk)的非 关系文档存 储每个数据库可以包 含多个表,每个表 可以包含多个无 schema(schemaless)的BSON文档创建命令、读取 命令、更新命 令、删除命令、 条件查询命令等支持map-reduce 利用,主从复制, 分片,空间索引 (spatial index)
3. Redis安装【基于CentOS 7.3 x86-64 系统安装 】
S1:rpm包安装
配置epel的yum源
- yum install http://mirrors.163.com/centos/7.3.1611/extras/x86_64/Packages/epel-release-7-
- 9.noarch.rpm
复制代码 在线yum安装
- yum install redis #安装完毕目前是redis-3.2.3-1.el7.x86_64.rpm
复制代码 安装最新版本使用remi
- yum install ftp://rpmfind.net/linux/remi/enterprise/7/remi/x86_64/redis4.0.1-1.el7.remi.x86_64.rpm
复制代码 启动服务
- systemctl start redis
- systemctl enable redis
复制代码 验证测试
- [root@localhost ~]# netstat -lnupt | grep :6379
- tcp 0 0 127.0.0.1:6379 0.0.0.0:*
- LISTEN 11413/redis-server
- [root@localhost ~]# ps -ef | grep redis
- redis 11413 1 0 10:46 ? 00:00:03 /usr/bin/redis-server
- 127.0.0.1:6379
- [root@localhost ~]# lsof -i tcp:6379
- COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME redis-ser 11413 redis 6u IPv4 29352 0t0 TCP localhost:6379
- (LISTEN)
复制代码 登录
- [root@localhost ~]# redis-cli
- 127.0.0.1:6379> help
- redis-cli 4.0.1
- To get help about Redis commands type:
- "help @<group>" to get a list of commands in <group>
- "help <command>" for help on <command>
- "help <tab>" to get a list of possible help topics
- "quit" to exit
- To set redis-cli preferences:
- ":set hints" enable online hints
- ":set nohints" disable online hints
- Set your preferences in ~/.redisclirc
-
- 127.0.0.1:6379> quit
复制代码 S2:源码安装
下载
- [root@localhost ~]# curl -O http://download.redis.io/releases/redis4.0.1.tar.gz
复制代码 解压
- [root@localhost ~]# tar xf redis-4.0.1.tar.gz -C /usr/local/src/
复制代码 安装
- [root@localhost ~]# cd /usr/local/src/redis-4.0.1/
- [root@localhost redis-4.0.1]# yum install gcc gcc-c++ make -y
- [root@localhost redis-4.0.1]# make
- [root@localhost redis-4.0.1]# make install
复制代码 启动
- [root@localhost redis-4.0.1]# mkdir -p /etc/redis
- [root@localhost redis-4.0.1]# cp redis.conf /etc/redis
- [root@localhost redis-4.0.1]# cd
- [root@localhost ~]# sed -i.bak 's/daemonize no/daemonize yes/' /etc/redis/redis.conf
- [root@localhost ~]# redis-server /etc/redis/redis.conf
- 5448:C 12 Aug 11:54:21.743 # oO0OoO0OoO0Oo Redis is starting
- oO0OoO0OoO0Oo
- 5448:C 12 Aug 11:54:21.743 # Redis version=4.0.1, bits=64,
- commit=00000000, modified=0, pid=5448, just started
- 5448:C 12 Aug 11:54:21.743 # Configuration loaded
复制代码 S3:Redis命令行客户端
发送命令
- redis-cli -h 127.0.0.1 -p 6379
- redis-cli PING
- redis-cli
复制代码 命令返回值
- 状态回复,e.g. >PING2.3 Redis配置
- 错误恢复, e.g. >ECMD
- 整数回复, e.g. >INCR foo
- 字符串回复,e.g. >GET foo >GET notexists`
- 多行字符串回复,e.g. >KEYS *
复制代码 S4:源码配置服务脚本:
- #1、创建用户和组
- groupadd -g 935 -r redis
- useradd -u 935 -g 935 -r -d /var/lib/redis -c “redis server” -s /sbin/nologin redis
- mkdir -p /var/lib/redis
- chown -R redis /var/lib/redis
- chmod -R 700 /var/lib/redis
复制代码- #2、修改配置文件
- /etc/redis/redis.conf
-
- dir /var/lib/redis/
-
- daemonize no
复制代码- #3、创建服务脚本
-
- [root@localhost ~]# vim /usr/lib/systemd/system/redis.service
- [Unit]
- Description=Redis persistent key-value database
- After=network.target
- [Service]
- ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf --daemonize no
- ExecStop=/usr/bin/kill -9 `pidof redis-server`
- User=redis
- Group=redis
- RuntimeDirectory=redis
- RuntimeDirectoryMode=0755
- [Install]
- WantedBy=multi-user.target
- [root@localhost ~]# systemctl daemon-reload【重新加载单元文件/更新服务状态】
复制代码
...
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |