非关系型数据:
- 数据之间没有关系;
- 数据存储于内存中
- 数据存储是 key:value 形式,譬如 name:zhangsan
1 redis概念
1、是一种特殊的nosql数据库软件,C语言编写的,所以安转redis前,需要先有一个支持C语言的环境,然后还需要编译啥的;
2、key都是string:
对应有五种value结构:
- String
- 哈希
- 列表
- 集合
- 有序集合
这五种value的本质依旧是String
3、redis是内存数据库,所以性能很棒。但是瓶颈也是在内存,容易受物理内存限制,只能适用于小数据的高性能操作和运算;
4、redis可以定期通过异步操作把数据flush到硬盘上进行保存。
2 下载安装
1、官网下载:redis.net.cn
2、解压可以直接使用绿色版的:
- redis.windows.conf:配置文件
- redis-server.exe:redis服务器端
- redis-cli.exe:redis的客户端
3 操作方式及存储结构
3.1 命令操作
3.1.1 redis的数据结构
3.1.2 字符串类型(String)
3.1.2.1 存储
set key value
3.1.2.2 获取
gey key
3.1.2.3 删除
del key
3.1.3 哈希类型(map格式)
3.1.3.1 存储
hset mapName keyOfMap valueOfMap
3.1.3.2 获取
hget mapName keyOfMap //获取指定的keyOfMap对应的值
hgetall mapName //获取所有的keyOfMap和valueOfMap
3.1.3.3 删除
hdel mapName keyOfMap
3.1.4 列表类型(list)
3.1.4.1 存储
lpush key value //将元素加入到列表左表
rpush key value //将元素加入到列表右表
3.1.4.2 获取
lrange key start end //获取所有时,end = -1
3.1.4.3 删除
lpop key //删除列表最左边的元素,并将元素返回
rpop key //删除列表最右边的元素,并将元素返回
3.1.5 集合类型(set)
3.1.5.1 存储
sadd key value[]
sadd myset a
sadd myset b c d
3.1.5.2 获取
smembers key //获取set集合中所有元素
3.1.5.3 删除
srem key value //删除set集合中的某个元素
3.1.6 有序集合类型(sortedset)
3.1.6.1 存储
//存储value及其对应的score,根据score对value进行排序,就是权重
zadd key score value
3.1.6.2 获取
zrange key start end
zrange key start end withscores
所以这个类型很适合做分数排行榜
3.1.6.3 删除
zrem key value
3.1.7 通用命令
1、获取所有的key
keys *
2、获取键对应的value的类型type key
3、删除指定的key valuedel key
3.2 Java客户端
3.2.1 Jedis
3.2.2 redisson
4 持久化
redis是一个内存数据库
,当redis服务器重启,数据会丢失,所以可以将redis内存中的数据持久化保存到硬盘的文件中。