Redis

关系型数据库(mysql)的缺点是:

海量用户、高并发

性能瓶颈:磁盘IO性能低下
扩展瓶颈:数据关系复杂(多表),扩展性差,不便于大规模集群

总结:访问人数巨增的情况下,容易崩服务器,造成访问异常

优点:免费

解决思路:Nosql

降低磁盘IO次数,越低越好 —— 内存存储

去除数据间关系,越简单越好 —— 不存储关系,仅存储数据


mysql两表之间是相互关系的 如图:

它们最终的数据是存在硬盘的文件上面

nosql系列:redis

数据库之间没有关系

数据存在内存上面

什么时候使用:热门数据、不经常改变的数据

因为有缓存,所以有些数据访问第一次有点慢,第二次就快很多

而这个缓存就是Redis

如果数据在redis查不到,就说明是第一次查询,就走直接查向数据库 


Redis 简介

Nosql

NoSQL:即 Not-Only SQL( 泛指非关系型的数据库),作为关系型数据库的补充。 作用:应对基于海量用户和海量数据前提下的数据处理问题。

特征: 可扩容,可伸缩

大数据量下高性能

灵活的数据模型

高可用

常见 Nosql 数据库:

Redis

HBase

MongoDB


1. 商品基本信息  MySQL

名称

价格

厂商 

 2.商品附加信息    MongoDB

描述

详情

评论

3.图片信息   分布式文件系统  

FastDFS集群

4.搜索关键字

ES、

Lucene、

solr

5.热点信息    Redis、memcache、tair

高频

波段性

所有的数据都是分开存放的,不然mysql受不了

Redis 

概念:Redis (REmote DIctionary Server) 是用 C 语言开发的一个开源的高性能键值对(key-value)数据库。

特征:

1.数据间没有必然的关联关系

2.内部采用单线程机制进行工作

3.高性能。官方提供测试数据,50个并发执行100000 个请求,读的速度是110000 次/s,写的速度是81000次/s。

4.多数据类型支持

字符串类型

列表类型

Hash类型

集合类型

有序集合类型

5.支持持久化,可以进行数据灾难恢复


Redis下载与安装

分两宗版本:

Linux版(适用于企业开发)

Windows版本(适合零基础开发)Tags · microsoftarchive/redis · GitHub

win-3.2.100版本下载

Redis-x64-3.2.100.zip


下载打开后查看文件

redis.windows-service.conf

 redis.windows.conf

配置文件

Redis on Windows Release Notes.docx

Redis on Windows.docx

Windows Service Documentation.docx

redis文档

redis-server.exe     //服务端(服务器) 主要用

redis-cli.exe        //客户端   主要用

redis-check-aof.exe      //文件修复的和持久化的

redis-benchmark.exe    //性能测试

可执行文件(后缀带exe),双击即可使用

先启动服务,再启动客户

端口号:6379

pid:随机生成 


命令行模式工具使用思考

功能新命令

清除屏幕信息    clear

帮助信息查询

退出指令         quit

添加信息(修改):set key value    如:set name lxyk

 获取信息:get name 拿到 ”lxyk”

如果没有这个key就会返回一个空(nil) 

帮助:  help (命令忘了会提示)

删除信息: del key

添加/修改多个数据:mset key1 value1 key2 value2

获取多个数据:mget key1 key2 

获取数据字符个数(字符串长度):strlen key

追加信息到原始信息后部(如果原始信息存在就追加,否者新建):append key value

数据储存类型介绍 

sting                          Sting (类似)

hash                         HashMap

list                            LinkedList

set                            HashSet

sorted_set                TreeSet


数据存储格式 

 myhash:就是键值对中存键值对,其他的都是链表

 redis 自身是一个 Map,其中所有的数据都是采用 key : value 的形式存储 数据类型指的是存储的数据的类型,也就是 value 部分的类型,key 部分永远都是字符串


 hash类型

 新的存储需求:对一系列存储的数据进行编组,方便管理,典型应用存储对象信息 需要的存储结构:一个存储空间保存多个键值对数据 hash类型:底层使用哈希表结构实现数据存储

hash 类型数据的基本操作 

添加/修改数据: 

hset key field value              //多了一个field

如:hset users name gry 

 获取数据:

hget key field           //如:hget users name

同时拿到 :hgetall key       //hgetall users

删除:

hdel key field1

获取哈希表中是否存在指定的字段

hexists key field

 


 list 类型数据基本操作

数据存储需求:存储多个数据,并对数据进入存储空间的顺序进行区分 需要的存储结构:一个存储空间保存多个数据,且通过数据可以体现进入顺序 list类型:保存多个数据,底层使用双向链表存储结构实现

底层就是双向链表 数据结构

 顺序表:相当于数组

双向链表的结构就是一去一回


 list 类型数据基本操作

添加/修改数据

lpush key value1 [value2] ……

rpush key value1 [value2] …… 

分为左进出右进出

 

 

如:左进出

         lpush list3 a

         lpush list3 b

          lpush list3 c 

查询(获取数据)的时候可以根据下标去查:(-1:代表最后一个)

lrange list3 0 -1

 

 

 右进出

        rpush list4 a

        rpush list4 b

        rpush list4 c

查询(获取数据):

lrange list4 0 -1

 

 获取并移除数据:

lpop list3

(如:list其中有三个数据,输入一次key删除第一个坐标)

 

 


set 

新的存储需求:存储大量的数据,在查询方面提供更高的效率

需要的存储结构:能够保存大量的数据,高效的内部存储机制,便于查询

set类型:与hash存储结构完全相同,并且值是不允许重复的 

set 类型数据的基本操作 

添加数据 

sadd key member1 [member2]

获取全部数据

smembers key

删除数据

srem key member1 [member2]

 

 

 

Key调用操作 

 

key常用指令 

key 基本操作 

删除指定key 

 del key

获取所有的key 

keys * 

获取key的类型 

type key         

也可以删除多个 

 

Jedis简介 

编程语言与redis 

Jedis用于Java语言连接redis服务,并提供对应的操作API 

客户端连接redis 

 操作步骤:

1.导入jar包

https://mvnrepository.com/

搜索jedis

2.创建连接

Jedis jedis = new Jedis("127.0.0.1",6379);

3.数据操作

        jedis.set("name","lxyk");
        jedis.set("age","18");
        System.out.println(jedis.get("name"));         //不在这里获取也会操作成功,但java的控制台不显示

        System.out.println(jedis.get("age"));

4.关闭连接 

jedis.close();

 注意:服务器和用户窗口不能关

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值