Redis 基础入门

关系型数据库和NoSQL

关系型数据库。主要代表:SQL Server,Oracle,MySQL(开源)
非关系型数据库(NoSQL) - 主要代表:MongoDB,Redis

区别

  1. 关系型数据库 存储的数据模型是 二维表格,也就是行和列。
  2. NoSql 数据库则更加灵活和可扩展,存储方式可以 存 JSON, 类对象 ,哈希表或者其他方式。
  3. NoSql 特点: 读,写速度快,但是不稳定。 适合 存储 缓存,消息,
  4. 关系型数据库 特点:读写相对慢,但是存储稳定

什么是Redis?

redis是Nosql数据库,是一个key-value存储系统。虽然redis是key-value的存储系统,但是redis支持的value存储类型是非常的多,比如字符串、链表、集合、有序集合和哈希。

Redis 数据类型

Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。

  • Redis hash 是一个键值(key=>value)对集合
  • Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员
  • string 是 redis 最基本的类型,你可以理解成与 Memcached 一模一样的类型,一个 key 对应一个 value。
  • Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。
  • Redis的Set是string类型的无序集合。

Redis缺点

1) 数据安全性不是很好, 所以数据要持久安全保存,还 是需要存到关系型数据库(mysql)

数据类型 一共5个

String: 字符串
Hash: 散列
List: 列表
Set: 集合
Sorted Set: 有序集合

练习

Redis 哈希(Hash)
Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。

C:\Users\jiyu>redis-cli
127.0.0.1:6379> set java10 hahaha
OK
127.0.0.1:6379> get java10
"hahaha"
127.0.0.1:6379> hmset user name "jerry" age "21" pwd "123456"
OK
127.0.0.1:6379> hgetall user
1) "name"
2) "jerry"
3) "password"
4) "123"
5) "age"
6) "21"
7) "pwd"
8) "123456"
127.0.0.1:6379> hget user age
"21"
127.0.0.1:6379> lpush listdemokey hello
(integer) 1
127.0.0.1:6379> lpush listdemokey  nihao
(integer) 2
127.0.0.1:6379> lpush listdemokey 110
(integer) 3
127.0.0.1:6379> lrange listdemokey
(error) ERR wrong number of arguments for 'lrange' command
127.0.0.1:6379> lrange listdemokey 0 10
1) "110"
2) "nihao"
3) "hello"
127.0.0.1:6379> lrange listdemokey 0 1
1) "110"
2) "nihao"
127.0.0.1:6379> sadd setdemokey sdf
(integer) 1
127.0.0.1:6379> sadd setdemokey aaa
(integer) 1
127.0.0.1:6379> sadd setdemokey aaa
(integer) 0
127.0.0.1:6379> smembers setdemokey
1) "sdf"
2) "aaa"
127.0.0.1:6379> zadd sortsetdemo 1 ttt
(integer) 1
127.0.0.1:6379> zadd sortsetdemo 2 ddd
(integer) 1
127.0.0.1:6379> zadd sortsetdemo 3 ttt
(integer) 0
127.0.0.1:6379> zadd sortsetdemo 4 aaa
(integer) 1
127.0.0.1:6379> zrange sortsetdemo 0 10
1) "ddd"
2) "ttt"
3) "aaa"

事务

  • 单个 Redis 命令的执行是原子性的,事务安全
  • 批量命令,事务不安全。 事务可以理解为一个打包的批量执行脚本,但批量指令并非原子化的操作,中间某条指令的失败不会导致前面已做指令的回滚,也不会造成后续的指令不做。

String 测试

  • 登录redis
  • redis-cli.exe -h 127.0.0.1 -p 6379
  • 插入一个string 类型的数据,key是today, value 是20190508, 使用命令:set today 20190508
  • 从redis数据库中,查看today对应的value是多少, 使用命令: get today
  • 在这里插入图片描述

Hash 测试

  • 适合存对象

  • HMSET 表示添加一条hash的记录到redis

  • HMSET myhash field1 “Hello” field2 “World” 表示存了一个对象,对象的名字叫“myhash” 这个对象有两个属性,field1和field2. 这两个属性的值分别是hello 和 world.

  • HGET myhash field1 表示从redis里面查询 对象myhash的属性field1的值是多少

  • 在这里插入图片描述

其余数据类型测试

在这里插入图片描述

每种数据类型的特点和使用场景

在这里插入图片描述

Redis的应用场景有哪些

1,会话缓存(最常用),代替session的功能,解决负载均衡的时候,多个java服务器之间,登录人的信息共享问题。
2,消息队列,
比如支付3,活动排行榜或计数
4,发布,订阅消息(消息通知)
5,商品列表,评论列表等
6. 查询结果缓存

Linux 下清理redis缓存

redis-cli -h 127.0.0.1 -p 6379
flushall

在这里插入图片描述

常用命令

flushdb#删除当前选择的数据库中的key
flushall#删除所有数据库中的键

redis的持久化

redis持久有两种方式:快照(快照),写到AOF文件(AOF)

快照—将存储在内存的数据以快照的方式写入二进制文件中,如默认dump.rdb中

使用AOF持久时,服务会将每个收到的写命令通过写函数追加到文件中(appendonly.aof)

默认情况
,Redis会将数据集的快照dump到dump.rdb文件中。此外,我们也可以通过配置文件来修改Redis服务器dump快照的频率,在打开redis.conf文件之后,我们搜索save,可以看到下面的配置信息:
save 900 1 #在900秒(15分钟)之后,如果至少有1个key发生变化,则dump内存快照。
save 300 10 #在300秒(5分钟)之后,如果至少有10个key发生变化,则dump内存快照。
save 60 10000 #在60秒(1分钟)之后,如果至少有10000个key发生变化,则dump内存快照。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值