redis的总结

redis1具体内容:https://mp.csdn.net/postedit/88673523

redis的shell操作及java操作Redis:https://mp.csdn.net/postedit/88666550

redis2具体操作:https://mp.csdn.net/postedit/88752840

 

一  总结

1.Nosql

2.数据库的架构演变

3.redis介绍、下载和安装

4.reids的数据类型

5.reids的Shell操作

6.Redis的持久化

7.Redis配置文件

8.Jedis

二   重点

1.说说你对nosql的理解(nosql是什么,说出几个Nosql实现的技术)

    Nosql:not only sql ,不仅仅是sql,nosql随着互联网的发展,数据类型多种多样(有文字,图片,视频,音频等等类型的数据),而且数据量非常多,我们要把这些数据我们都要保存下来,原来的数据都是保存在关系型数据库。传统的数据库(关系型数据库,MySql,ORACLE,DB2,Sql Server)无法解决这些问题(数据的存储和高效读取问题),就促进了Nosql的发展,Nosql中存储数据没有固定的格式,而传统数据库存储数据都是二维表的形式。

  Nosql实现的技术:Memcach    MogoDB  Memcache

  nosql的特点:里边存储的数据没有关系,所以可以把任何数据都往里塞

2.说说你怎么理解数据库水平拆分和垂直拆分

   就是表中的数据量很多,(一张表可能存不下了,这是分表)(或者一个数据库存不下了,这是分库),假如有一张用户表,里边的字段非常多,80个字段,用户页很多,存了90万的用户,这么多数据,数据库的性能肯定会受到影响。

  我就以拆分表为例说一下吧。

    水平拆分:就是把这一张表(一个库)拆分成多份,把user表可以拆分成三份,第一张表放30万的数据,第二张放20万,第三张放40万的数据

   垂直拆分:就是把表中的字段拿出来,可以把不常用的字段取出来放在一张表中,常用的字段再放在另一张表中

3.说说你为什么使用redis,有什么用,redis的优势

     redis是一个非关系型数据库(NoSql),存储的数据都是以key-value存放的。可以用作数据存储,缓存,支持五种数据类型: 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets)。 

    redis的优势是:里边的数据类型很多,可以存储多种类型的数据;支持缓存,支持高效的读取;支持持久化,可以把内存中的数据持久化到磁盘上,reidis在我们做项目时经常用来做缓存,然后redis重启时就可以从该文件中加载数据加载到内存中

4.Redis的五种数据类型

      String是Redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value,String类型是二进制安全的。意味着Redis的string可以包含任何数据。比如jpg图片或者序列化的对象。

     List:单键多值Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)

     Redis set对外提供的功能与list类似是一个列表的功能,特殊之处在于set是可以自动排重的,当你需要存储一个列表数据,又不希望出现重复数据时,set是一个很好的选择,并且set提供了判断某个成员是否在一个set集合内的重要接口,这个也是list所不能提供的。Redis的Set是string类型的无序集合它底层其实是一个value为null的hash表,所以添加,删除,查找的复杂度都是O(1)。它的底层实际是个双向链表,对两端的操作性能很高,通过索引下标的操作中间的节点性能会较差。

   Redis hash 是一个键值对集合。Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。类似Java里面的Map<String,Object>

      Redis有序集合zset与普通集合 set(无序集合) 非常相似,是一个没有重复元素的字符串集合不同之处是有序集合的每个成员都关联了一个评分(score) ,这个评分(score)被用来按照从最低分到最高分的方式排序集合中的成员。集合的成员是唯一的,但是评分可以是重复了 。因为元素是有序的, 所以你也可以很快的根据评分(score)或者次序(position)来获取一个范围的元素。访问有序集合的中间元素也是非常快的,因此你能够使用有序集合作为一个没有重复成员的智能列表。   

5.redis如何启动,停止

启动服务端:./redis-server [配置文件路径]    默认会到redis安装目录下找redis.conf 文件,当然我们可以自动以文件位置

启动客户端:./redis-cli [-p 端口] [-h IP] [-a 密码],默认自动连接本机端口为6379,redis默认是没有密码的。

关闭服务端:

客户端执行:shutdown

直接杀死该进程:kill -9 进程号

获取进程号:ps -ef | grep redis

关闭客户端:exit/quit

6.说出你经常用的Redis配置

logfile:  日志存放位置  可以修改

daemonize:是否后台运行,默认是不运行

timeout:超时时间

port:端口号,端口号可以修改

bind:绑定ip,后边写的ip才可以连进来

databases:数据库的个数

security安全:访问密码的查看、设置和取消

 关于持久化的:

RDB:默认打开的,我们可以修改save,设置落盘时间,每当时间M内改动的键个数大于N时,则触发快照备份。存在多个快照条件时,条件之间是或的关系,也就是说只有一个条件被触发就会执行快照备份

文件存放位置

AOF:默认是关闭的,我们需要到配置文件中打开,将appendonl改为yes开启AOF 。OF会将每次的操作记录下来,存发到文件中,redis重启之后会将appendonly.aof中的命令全部执行一次

两者都存在优先使用aof

7.Redis的持久化

     Redis主要的作用是存储数据,用来做缓存,提高数据的高效查询,缓存的数据是存放在内存中的,那么一旦关机内存中的数据就会丢失,重启之后数据就没有了,而Redis的一大特征就是支持持久化,会将内存中的数据进行落盘,电脑重启之后会从磁盘上读取数据在加载到内存中。   Redis支持RDB和AOF两种持久化策略

落盘:往磁盘上写数据(从内存-----到磁盘),把内存中的数据存到磁盘上,防止重启redis后数据丢失

详情见链接:四 redis的持久化   https://mp.csdn.net/postedit/88752840

8.Jedis的主要对象是什么?

Java操作Redis这个技术叫Jedis

可以在java里操作redis的五大数据类型

9.数据库的架构演变

01单机时代(单个数据库)----》02Memcached(缓存)+Mysql+垂直拆分(Memcached作为一个独立的分布式的缓存服务器使用缓存技术可以减缓数据库的压力,多台web机器通过文件缓存也可以实现共享,能缓解数据库的读取压力,但不能解决数据库的写入压力)----》03Mysql主从读写分离(使用主从复制技术来达到读写分离,以提高读写性能和读库的可扩展性,解决了数据库写的压力)---》04分表分库+水平拆分+mysql集群(这时MySQL主库的写压力开始出现瓶颈,而数据量的持续猛增,这时候开始流行使用分表分库来缓解写压力和数据增长的扩展问题,MySQL还推出了MySQL Cluster集群,但性能并不是很稳定)---》05MySql的扩展瓶颈(mySQL数据库也经常存储一些大文本字段,导致数据库表非常的大,在做数据库恢复的时候就导致非常的慢,不容易快速恢复数据库。MySQL的扩展性差(需要复杂的技术来实现),大数据下IO(磁盘)压力大,表结构更改困难,正是当前使用MySQL的开发人员面临的问题)--06今天数据库架构的样子:。。。。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值