什么是Redis
Redis是用C语言开发的一个开源的高性能键值对(key-value)的非关系型数据库(NoSql)。Redis(非关系系数据库)数据库将数据存储在缓存之中,关系型数据库将数据存储在硬盘中,所以非关系型数据库的查询速度是远远超过关系型数据库的查询速度。
下载安装:
- 官网:https://redis.io
- 中文网:http://www.redis.net.cn/
- 下载解压后可以直接使用:
-
redis.windows.conf
:配置文件 -
redis-cli.exe
:redis的客户端 -
redis-server.exe
:redis的服务器端
Redis的数据结构和命令操作
- redis的数据结构
redis存储的是:key,value格式的数据,其中key都是字符串,value有五种不同的数据结构 ,数据结构中存储的也都是字符串类型。
- 字符串类型 String
- 哈希类型 hash:map格式
- 列表格式 list:linkedlist格式 。支持重复元素
- 集合类型 set:不允许重复元素
- 有序集合类型 sortedset:不允许重复元素,且元素有顺序
- redis的基本命令行操作
- String类型
- 存储数据
set key value
- 查询数据
get key
- 删除数据
del key
- hash类型(key:{key:value})
- 存储数据
hset key key value
- 查询数据
- 查询某一个数据:hget key key
- 查询所有的数据:hgetall key
- 删除数据
hdel key key
- 列表类型 list,元素可以重复
- 存储数据 ,允许一次存入多个,空格隔开(value value value…)
- 往列表的最左边添加一个元素:
lpush key value
- 往列表的最右边添加一个元素:
rpush key value
- 查询数据
-
lrange key start end
按照范围查询,如查询第一个到第三个数据 :lrange key 0 2
。查询所有的数据可以用lrange key 0 -1
。
- 删除数据
-
lpop key
:删除列表最左边的元素,并返回该元素的值 -
rpop key
:删除列表最右边的元素,并返回该元素的值
- 集合类型 set,元素不能重复
- 存储数据,允许一次存入多个数据,空格隔开:
sadd myset value
- 查询所有数据:
smembers key
- 删除某个数据:
srem key value
- 有序集合类型sortedset,存数据时需要自己同时存入一个score,排序时会按照这个score进行大小排序,不允许重复元素。
- 存储数据:
zadd key score value
- 查询数据:
1. 从小到大查询所有的数据:zrange key start end
按照范围查询。
2. 从小到大查询所有的数据包括score:zrange key start end withscores
- 删除某个数据:
zrem key value
- 常用的通用命令:
-
keys *
(*可为一个正则表达式,*表示所有的):查询所有的key(键名) -
type key
:查询某个键对应的值的类型 -
del key
:删除某个键,同时值也被删除
Redis的持久化
Redis是内存数据库,当redis服务器重启后,或者电脑重启,数据都会丢失,我们可以将redis内存中的数据持久化的存储到硬盘中。
- RDB持久化机制:
默认方式,不需要进行配置,默认就是用这种机制。这种机制是在一定的间隔时间后,检测key的变化情况,符合要求后就持久化数据。数据会存在.rdb文件中。
- 编辑
redis.windows.conf
配置文件可以根据需求修改时间间隔和key的变化情况。下为默认设置。
save 900 1
after 900 sec (15 min) if at least 1 key changed
save 300 10
after 300 sec (5 min) if at least 10 keys changed
save 60 10000
after 60 sec if at least 10000 keys changed
- 按照自己的需求修改后,从命令行启动服务器并制定配置文件。(如果不需要修改,正常启动即可)
PS D:\redis-2.8.9> .\redis-server.exe redis.windows.conf
- AOF持久化机制: 日志记录的方式,可以记录每一条命令的操作。可以在每一次命令操作后或者每隔一秒持久化操作一次。数据会存在.aof文件中。
- 修改配置文件
redis.windows.conf
文件
appendonly no(默认为no,aof机制关闭)--->appendonly yes(开启aof)
# appendfsync always 每执行一次命令都会持久化一次
appendfsync everysec 每隔一秒钟持久化一次
# appendfsync no 不进行持久化
- 命令行启动服务器
PS D:\redis-2.8.9> .\redis-server.exe redis.windows.conf