redis学习(1)——介绍&安装

3 篇文章 0 订阅
1 篇文章 0 订阅

NoSQL

介绍

NoSQL不是No SQL的意思,而是Not Only SQL,指的是非关系型的数据库,是对不同于传统的关系型数据库的数据库管理系统的统称。

NoSQL使用场景

NoSQL用于超大规模数据的存储。(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据)。这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。

NoSQL数据库分类

NoSQL数据库主要分以下4类:
1. 键值(K-V):

典型数据库:redis、memcached

应用场景:内容缓存,主要用于处理大量数据的高访问负载,也用于一些日志系统等等。

优点:查找速度快

缺点:数据无结构化,通常只被当作字符串或者二进制数据

  1. 列存储数据库

典型数据库:HBase

应用场景: 以列簇式存储,将同一列数据存在一起

优点:查找速度快,可扩展性强,更容易进行分布式扩展

缺点:功能相对局限

  1. 文档型数据库

典型数据库:MongoDB

应用场景:Web应用(与Key-Value类似,Value是结构化的,不同的是数据库能够了解Value的内容)

优点:数据结构要求不严格,表结构可变,不需要像关系型数据库一样需要预先定义表结构

缺点:查询性能不高,而且缺乏统一的查询语法。

  1. 图形数据库

典型数据库:Neo4J

应用场景:社交网络,推荐系统等,专注于构建关系图谱

优点:利用图结构相关算法。比如最短路径寻址,N度关系查找等

缺点:很多时候需要对整个图做计算才能得出需要的信息,而且这种结构不太好做分布式的集群方案。

redis简介

redis是一款基于k-v对存储的非关系型数据库

redis支持的数据类型

作为Key-value型数据库,Redis也提供了键(Key)和键值(Value)的映射关系。但是,除了常规的数值或字符串,Redis的键值(value)还可以是以下形式之一:

  • String
  • List
  • Set
  • ZSet(有序集合)
  • Hash(哈希表)
redis对于不同的键值对的支持
  1. 对于表、集合、有序集合,Redis支持交集、并集、差集等高级原子操作。
  2. 对于键值的类型是普通数字,Redis则提供自增等原子操作。
redis的持久化

Redis将数据存储于内存中,或被配置为使用虚拟内存。主要是通过以下两种方式可以实现数据持久化:

  1. 使用快照的方式:将内存中的数据不断写入磁盘;2. 使用类似MySQL的日志方式:记录每次更新的日志。

ps:1.的性能较高,但是可能会引起一定程度的数据丢失,而2.的性能相对没那么高,但是不易引起数据丢失,使用哪种持久化要根据自己项目的需求来选择

安装redis

因为选用的是centos镜像,centOS官方yum源里面没有redis,所以要通过第三方yum源,我们选用的是Fedora的epel仓库,安装命令如下

yum install epel-release
yum install redis 
redis服务基本操作命令
# 启动redis
service redis start
# 停止redis
service redis stop
# 查看redis运行状态
service redis status
# 查看redis进程
ps -ef | grep redis
# 设置开机自启动
chkconfig redis on

redis的基本配置

参数配置

redis的参数主要是放在redis.conf中,在Windows下是放在redis.windows.conf中

  • daemonize:是否以后台daemon方式运行
  • pidfile:pid文件位置
  • port:监听的端口号
  • timeout:请求超时时间
  • loglevel:log信息级别
  • logfile:log文件位置
  • databases:开启数据库的数量
  • save * :保存快照的频率,第一个表示多长时间,第三个*表示执行多少次写操作。在一定时间内执行一定数量的写操作时,自动保存快照。可设置多个条件。
  • rdbcompression:是否使用压缩
  • dbfilename:数据快照文件名(只是文件名,不包括目录)
  • dir:数据快照的保存目录(这个是目录)
  • appendonly:是否开启appendonlylog,开启的话每次写操作会记一条log,这会提高数据抗风险能力,但影响效率。
  • appendfsync:appendonlylog如何同步到磁盘(三个选项,分别是每次写都强制调用fsync、每秒启用一次fsync、不调用fsync等待系统自己同步)
远程登录和密码配置

vim /etc/redis.conf

如果现实没安装vim 可以使用yum install vim-enhanced安装

根据下面修改

注释该行,允许远程登录
#bind 127.0.0.1yes改成no 
protected-mode no
保存退出

redis默认是无密码登录的,如果需要密码登录,可以在redis.conf文件中增加如下语句

requirepass yourpassword

当客户端要连接到有密码的 redis 服务器时,只需要先连接到 redis 服务器然后使用 auth yourpassword 命令输入密码即可,如果不输入密码是无法对redis进行操作的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值