文章目录
https://baijiahao.baidu.com/s?id=1660009541007805174&wfr=spider&for=pc
第一章 概述
1.1 非关系型数据库的优势
- 非关系型数据库,提高了访问数据得速度
- 性能NOSQL是基于键值对的,可以想象成表中的主键和值的对应关系,而且不需要经过SQL层的解析,所以性能非常高。
- 可扩展性同样也是因为基于键值对,数据之间没有耦合性,所以非常容易水平扩展。
- 一般会将数据存储在关系型数据库中,在nosql数据库中备份存储关系型数据库的数据
1.2 edis支持的键值数据类型
- 字符串类型 string
- 哈希类型 hash
- 列表类型 list
- 集合类型 set
- 有序集合类型 sortedset
1.3 redis的应用场景
- 缓存(数据查询、短连接、新闻内容、商品内容等等)
- 任务队列。(秒杀、抢购、12306等等)
- 聊天室的在线好友列表
- 应用排行榜
- 网站访问统计
- 数据过期处理(可以精确到毫秒
- 分布式集群架构中的session分离
第二章 redis的数据结构
键值对方式,其中key都是字符串,value有5种不同的数据结构
value的数据结构
-
字符串类型 string
- set username zhangsan
- get username
-
哈希类型 hash : map格式
- hset myhash username lisi
- hset myhash password 123
- hget myhash username
- hgetall myhash
-
列表类型 list : linkedlist格式。支持重复元素
- lpush key value:将元素加入列表左表
- rpush key value:将元素加入列表右边
- lrange key start end :范围获取
- lrange myList 0 -1:索引0到-1
- lpop key: 删除列表最左边的元素,并将元素返回
- rpop key: 删除列表最右边的元素,并将元素返回
-
集合类型 set : 不允许重复元素
- 存储:sadd key value
- 获取:smembers key:获取set集合中所有元素
- 删除:srem key value:删除set集合中的某个元素
- srem myset a
-
有序集合类型 sortedset:不允许重复元素,且元素有顺序
- 不允许重复元素,且元素有顺序.每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。
- 存储:zadd key score value
- 获取:zrange key start end [withscores]
- 删除:zrem key value
-
通用命令
-
- keys * : 查询所有的键
-
- type key : 获取键对应的value的类型
-
- del key:删除指定的key value
-
第三章 Java客户端 Jedis
Jedis: 一款java操作redis数据库的工具.
3.1 快速入门
public void test1(){
//1.获取连接
Jedis jedis=new Jedis();
//2.操作
jedis.set("username","lisi");
//3.关闭连接
jedis.close();
}
3.2 操作字符串结构的数据
//可以使用setex()方法存储可以指定过期时间的 key value
//将activecode:hehe键值对存入redis,并且20秒后自动删除该键值对
jedis.setex("activecode",20,"hehe");
3.3 操作hashmap数据结构
/**
* hashmap 数据结构的操作
*/
@Test
public void test3(){
//1.获取连接
Jedis jedis=new Jedis();//如果使用空参构造,默认值 "localhost",6379端口
jedis.hset("user","name","lisi");
jedis.hset("user","age","16");
jedis.hset("user","gender","男");
String name = jedis.hget("user", "name");
String gender = jedis.hget("user", "gender")