前言
Redis是目前最火热的NoSQL数据库,本文将学习Redis的安装和几种数据类型的使用。
Redis简介
Redis(Remote Dictionary Server )远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存也可持久化的日志型、Key-Value数据库。
Redis的特点
- 性能极高,基于内存,读的速度是110000次/s,写的速度是81000次/s
- 丰富的数据类型,支持string、hash、list、set及zset多种数据类型
- 原子性,所有操作都是原子性的,支持事务
- 丰富的特性,支持发布订阅、通知、过期策略等
- 支持持久化,可以将内存中的数据保存在磁盘中,重启后再次加载
- 支持分布式,理论上可以无限扩展
安装Redis
Linux安装
安装c编译器
yum -y install gcc
下载redis
cd /usr/local
wget http://download.redis.io/releases/redis-3.2.5.tar.gz
解压redis
tar xzf redis-3.2.5.tar.gz
mv redis-3.2.5 redis
编译redis
cd redis
make
配置redis
修改redis.conf,注释下面两行
# bind 127.0.0.1 去掉绑定本机IP,让其它机器访问
# protected mode no 关闭保护模式
启动redis服务器
切换到src中
./redis-server ../redis.conf
启动redis客户端
./redis-cli
Windows安装
从官网下载redis的windows版本
https://github.com/tporadowski/redis/releases
解压后,双击redis-server.exe,就完成了Redis启动
Redis的数据类型
Redis数据类型有:
- string 字符串
- hash 哈希
- list 列表
- set 集合
- zset 有序集合
string
字符串是基本的key-value结构
设置值
set name "zhagnsan"
set name "zhagnsan" EX 60 //EX是过期时间,单位是秒
读取值
get name
示例:
127.0.0.1:6379> set name "zhangsan"
OK
127.0.0.1:6379> get name
"zhangsan"
hash
hash可以保存一个对象的多个key-value
保存对象,student是对象名称,name和age是属性名称
hmset student name "zhangsan" age 20
读取对象属性
hmget student name
读取对象所有属性
hgetall student
示例:
127.0.0.1:6379> hmset student name "zhangsan" age 20
OK
127.0.0.1:6379> hmget student name
1) "zhangsan"
127.0.0.1:6379> hgetall student
1) "name"
2) "zhangsan"
3) "age"
4) "20"
list
list采用链表结构保存多个数据,是有序的、可重复的。
添加列表
lpush students zhangsan
lpush students lisi
lpush students wangwu
读取列表,0和2是开始和结束位置
lrange students 0 2
示例:
127.0.0.1:6379> lpush students zhangsan
(integer) 1
127.0.0.1:6379> lpush students lisi
(integer) 2
127.0.0.1:6379> lpush students wangwu
(integer) 3
127.0.0.1:6379> lrange students 0 2
1) "wangwu"
2) "lisi"
3) "zhangsan"
set
set是无序的、不可重复的集合。
添加数据
sadd students zhangsan
sadd students lisi
sadd students wangwu
读取数据
smembers students
示例:
127.0.0.1:6379> del students
(integer) 1
127.0.0.1:6379> sadd students zhangsan
(integer) 1
127.0.0.1:6379> sadd students lisi
(integer) 1
127.0.0.1:6379> sadd students wangwu
(integer) 1
127.0.0.1:6379> smembers students
1) "wangwu"
2) "zhangsan"
3) "lisi"
zset
zset是有序的、不可重复的集合。
添加数据,要添加一个score数字,按score排序
zadd key score value
读取数据
- zrangebyscore ,start和end是score最小和最大值
zrevrangebyscore 反向读取zrangebyscore
zrangebyscore key start end
- zrange ,start和end是开始和结束位置
zrevrange 反向读取zrange
zrange key start end
示例:
127.0.0.1:6379> del students
(integer) 1
127.0.0.1:6379> zadd students 1 zhangsan
(integer) 1
127.0.0.1:6379> zadd students 2 lisi
(integer) 1
127.0.0.1:6379> zadd students 3 wangwu
(integer) 1
127.0.0.1:6379> zrangebyscore students 0 1000
1) "zhangsan"
2) "lisi"
3) "wangwu"
结束
大家如果需要学习其他Java知识点,戳这里 超详细的Java知识点汇总