概念
redis: 它是一款高性能的NOSQL(Not Only SQL)系列的非关系型数据库
注意:
1.Mysql是关系型数据库,Redis是非关系型数据库
2.对于关系型数据库,数据之间有关联关系,而且数据存储在表中(也就是硬盘的文件中)
3.对于非关系型数据库,没有表的概念,数据之间没有关联关系(即没有耦合),存储的是以key-value键值对的形式且数据存在内存中(读取内存数据比文件数据快很多)
4.一般我们都是将数据存储在关系型数据库,然后在非关系型数据库中做备份
下载安装
百度直接搜索redis中文网然后下载解压就好,我把我的放上去:** 链接: https://pan.baidu.com/s/1uMJSb7p4NG0Yt59mqo8ioA 提取码: p9c8**
分析:
1.redis.windows.conf里面放的是配置文件
2.redis-cli.exe,这是redis的客户端(启动服务器以后再点击客户端就启动了,在黑窗口敲命令就可以了.例如:
set name fan
–>get name
)3.redis-server.exe, 这是redis的服务端(点一下这个服务器就启动了)
Redis数据结构介绍
redis存储的是key,value键值对格式的数据,其中key都是字符串,value值可以有5种不同的数据结构
value的数据结构
不论value是什么类型,它里面的数据都是字符串类型
1.字符串类型: String
2.哈希类型: hash,也就是map格式–key,value
3.列表类型: list,例如linkedlist
4.集合类型: set,例如hashset
5.有序集合类型: sortedset(不重复,有序)
常用命令操作(点那个客户端的exe就可以打开黑窗口了)
再次强调,redis中的key都是字符串类型的
1.value为字符串类型
1.存储: set key value,例如: set name fan
2.获取: get key,例如: get name
3.删除: del key,例如: del name
2.value为哈希类型
1.存储: hset key field value,例: hset test name fan || hset test age 18
2.获取: hget key field,例: hget test name
3.获取给定key中的所有value: hgetall key,例: hgetall test
4.删除: hdel key field,例: hdel test name
3.value为列表list类型(可重复)
Redis列表是简单的字符串列表,按照插入顺序排序,你可以添加一个元素到列表的头部(左边)或者尾部(右边),不能在中间添加
1.添加
1.将元素从列表左边添加: lpush key value
2.将元素从列表右边加入: rpush key value
2.获取:
1.lrange key start end: 范围获取
2.获取指定key中的所有元素: lrange key 0 -1
3.删除
1.lpop: 删除列表最左边的元素并将元素返回
2.rpop: 删除列表最右边的元素并将元素返回
4.value为集合set类型(不重)
当添加的元素是重复的的时候,它就不会添加进去
1.存储: sadd key value
2.获取: smembers key,获取set集合中某个给定key下面的所有元素
3.删除: srem key value,删除set集合中某个key中的某个元素
5.value为有序集合(不重复且有序)
Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数,redis正是通过分数来为集合中的成员进行从小到大的排序
1.存储: zadd key score(这个表示排序顺序) value
例: zadd test 1 a
例: zadd test 1 b–使得a字符和b字符是同样的分数这个是可以的,如果是元素重复的话,它就不会添加进去
例: zadd test 3 a–修改a的分数以改变其顺序
2.获取: zrange key start end
例: 获取指定key下的所有元素及其对应分数: zrank test 0 -1 withscores
3.删除: zrem key value
例: zrem sort a-- 删除sort中的a元素
6.通用命令
1.keys : 查询所有的键,其中的表示一个正则表达式
2.type key: 获取对应key的value的类型
3.del key: 删除指定的key及其value
redis持久化
持久化: 由于redis是一个内存数据库,也就是说我们的操作都是在内存中进行的,数据都是临时的,当我们服务器一重启,数据就没了,我们可以将redis内存中的数据持久化保存到硬盘的文件中,数据就不会丢失了
持久化机制
1.RDB: 默认方式,不需要进行配置,默认使用的就是这个配置(
存放在后缀名为.rdb的文件中
)在一定的间隔时间中,我们去检测key的变化情况,当key达到一定数量后,然后持久化数据
编辑
redis.windows.conf
这个配置文件中的这样一段内容
save 900 1
表示如果只改变了几条数据,最少一条,在900秒后持久化
save 300 10
表示如果只改变了大于10条,但是小于10000,在300秒之后持久化
save 60 10000
表示如果改变了10000条及以上数据,在60秒之后持久化
当我们修改了配置文件之后,我们需要重新启动redis服务器并指定配置文件名称:
1.在配置文件所在目录打开cmd黑窗口
2.输入
redis-server.exe redis.windows.conf
服务器就会重启3.然后再点击
客户端的exe文件
重启客户端就可以了2.AOF(
存放在一个后缀名为.aof的文件中
)日志记录的方式,可以记录每一条命令的操作,可以每一次命令操作后都持久化数据
步骤:
1.编辑
redis.windows.conf
这个配置文件中的appendonly no
改为appendonly yes
就表示开启了AOF持久化存储方式2.AOF的三个内容:
appendfsync always
表示每间隔一次操作都进行持久化
appendfsync everysec(默认)
表示每间隔一秒都进行持久化
appendfsync no
表示不进行持久化
3.当我们修改了配置文件之后,我们也需要重新启动redis服务器并指定配置文件名称,跟RDB一样的,我就不重复写了