概念
Redis是一款高性能的NOSQL系列的非关系型数据库
下载和安装
下载网站
官网:www.redis.io/ ------>下载很慢
中文网:www.redis.net.cn/
安装包分享码:
链接:https://pan.baidu.com/s/1C36lVFtN4QrdJccPpK0fgA
提取码:0l7q
对应版本解压之后可以直接使用,不需要安装,绿色版本,我这个是windows操作系统的版本,以后工作使用的大部分是Linux版本
redis.windows.conf:配置文件
redis-server.exe :Redis的服务器端,
redis-cli.exe: Redis 的客户端
命令操作:(比较重要,面试比较容易问道)
帮助文档
查看帮助文档的是一个非常好的习惯
Redis其实就是一个个的键值对,键是String类型,而值则是Object,主要存五种类型:
第一:Redis的数据结构:
Redis储存的是::key,value格式的数据,其中key都是字符串,value有五种不同的数据结构
1.value的数据结构:
字符串类型 String
哈希类型 hash: map格式
列表类型 list:: linkedList 格式 (允许有重复的元素,有序列)
集合类型 set: hashSet (不允许有重复的元素,无序列)
有序集合类型 sortedset: (不允许有重复的元素,有序列)
哈希类型,集合类型,有序集合类型都是采用的哈希\数据结构存储,所以他们的时间复杂度都是O(1),有序集合类型则是通过指定一个double类型的score来标记对应的value值的大小,通过score来排序
第二:常用Redis数据操作
1.字符串类型:String
储存: set key value (会覆盖掉重名key的值)
获取: get key
删除 del key
2.哈希类型: hash: map格式
存储: hset key field value
获取: hgetall key field:获取指定的field对应的值
获取所有的: hgetall key : 获取所有的field 和 value
删除: hdel key field
3.列表类型 list:: linkedList 格式 (允许有重复的元素,有序列)
我们可以选择把新的元素添加到列表左边还是列表右边
添加:
lpush key value : 将元素加入列表左边
rpush key value : 将元素加入到列表右边
获取:
lrange key start end : 范围获取
删除:
lpop key : 删除列表最左边的元素,并将元素返回
rpop key : 删除列表最右边的元素,并将元素返回
4.集合类型 set: hashSet (不允许有重复的元素,无序列)
存储:sadd key value:
获取: smembers key : 获取set集合中的所有元素
删除: srem key value : 删除set集合中的某个元素
5.有序集合类型 sortedset: (不允许有重复的元素,有序列)
存储:zadd key score value
获取: zrange key start end
获取所有的value和对应的score :
zrange key start end withscores
删除: zrem key value
第三,通用命令
keys * : 查询所有的键
type key : 获取键对应的value的类型
del key : 删除指定的key和value
持久化
Redis是一个内存数据库,当Redis服务器重启时,数据就会丢失,我们可以将Redis内存中的数据持久化保存到硬盘文件中,
Redis持久化机制
RDB:默认方式,不需要进行配置,使用默认方式,性能比较好,该机制就是在一定的时间间隔以内,进行检测key的变化情况,然后持久化数据
配置redis.windows.conf文件,
save 900 1 ->>>>就是在900秒内有一次改变key值,Redis就持久化一次
save 300 10 >>>>>就是在300秒内有十次改变key值,Redis就持久化一次
配置完文件之后我们不能直接启动服务器端
我们需要使用cmd的方式同时启动服务器端和配置文件
然后当修改key的次数符合条件的时候Redis就会持久化一次
并会在目录中生成一个**.rdb为后缀名的文件**,用来储存Redis中持久化的信息
AOF日志记录的方式,可以记录每一条命令的操作,可以每一次命令操作之后,就持久化数据,比较浪费性能,但是修改过程比较详细
同样的,我们也是需要编辑Redis.Windows.conf文件
在配置文件中有一条属性 :appendonly no(默认是关闭的,我们可以修改为yes打开AOF模式)
appendfsync always : 每一次操作都进行持久化
appendfsync everysec : 每一秒操作一次
appendsync no : 不持久化,这个时候Redis就好像是内存中一个非常大的map集合
这种方式持久化存储的文件后缀名是**.AOF**
Jedis客户端:
jedis:是一款Java操作Redis数据库的工具.类似于我们通过JDBC来连接MySQL数据库一样,jedis就是Java语言连接Redis的一种连接方式.
始终步骤,下载相关的jar包
commons-pool2-2.3.jar ---->连接池的包
jedis-2.7.0.jar ------>jedis的工具包
资源分享
链接:https://pan.baidu.com/s/1C36lVFtN4QrdJccPpK0fgA
提取码:0l7q
举个栗子:
@Test
public void test1(){
//获取连接
Jedis jedis = new Jedis("localhost",6379);
//操作
jedis.set("username","zhangsan");
//关闭连接
jedis.close();
}