Redis 简介
NoSQL
即 Not-Only SQL( 泛指非关系型的数据库),作为关系型数据库的补充
Nosql作用
应对基于海量用户和海量数据前提下的数据处理问题。
常见 Nosql 数据库:
Redis
memcache
HBase
MongoDB
Nosql 数据库特征
可扩容,可伸缩
大数据量下高性能
灵活的数据模型
高可用
Redis特征
1. 数据间没有必然的关联关系
2. 内部采用单线程机制进行工作
3. 高性能。
4. 多数据类型支持
5.久化支持。可以进行数据灾难恢复
Redis 的应用
为热点数据加速查询(主要场景),如热点商品、热点新闻、热点资讯、推广类等高访问量信息等【缓存】
任务队列,如秒杀、抢购、购票排队等 【MQ】
即时信息查询,如排行榜、各类网站访问统计、公交到站信息、在线人数信息(聊天室、网站)、设
备信号等
Redis 的下载与安装
下载地址:
https://github.com/MSOpenTech/redis/tags
核心文件:
redis-server.exe 服务器启动命令
redis-cli.exe 命令行客户端
端口:6379
Redis 的基本操作
清除屏幕信息
clear
退出指令
exit
数据存储类型介绍
redis 数据存储格式
redis 自身是一个 Map,其中所有的数据都是采用 key : value 的形式存储
数据类型指的是存储的数据的类型,也就是 value 部分的类型,key 部分永远都是字符串
1.string
添加/修改数据
set key value
获取数据
get key
删除数据
del key
添加/修改多个数据
mset key1 value1 key2 value2 …
获取多个数据
mget key1 key2 …
获取数据字符个数(字符串长度)
strlen key
追加信息到原始信息后部(如果原始信息存在就追加,否则新建)
append key value
设置数据具有指定的生命周期
setex key seconds value
2.hash
添加/修改数据
hset key field value
获取数据
hget key field
获取所有数据
hgetall key
删除数据
hdel key field1 [field2]
获取哈希表中所有的字段名或字段值
hkeys key
hvals key
3.list
添加/修改数据
lpush key value1 [value2]
rpush key value1 [value2]
获取数据
lrange key start stop 【从0开始,-1代表结束】
lindex key index
llen key
获取并移除数据【根据key值获取并移除一个数据】
lpop key
rpop key
清空列表
del key
4.set
添加数据
sadd key member1 [member2]
获取全部数据【无序】
smembers key
判断集合中是否包含指定数据【返回值:1--存在;0--不存在】
sismember key member
删除指定数据
srem key member1 [member2]
获取集合数据总量
scard key
5.sorted_set
添加数据
zadd key score1 member1 [score2 member2]
获取全部数据
zrange key start stop [WITHSCORES]
删除数据
zrem key member [member ...]
Redis 通用指令
key是一个字符串,通过key获取redis中保存的数据
删除指定key
del key
获取key是否存在
exists key
获取key的类型
type key
切换数据库
select index
可视化客户端
Jedis
1.Jedis简介
Java语言连接redis服务 Jedis
2.HelloWorld(Jedis版)
2.1基于maven
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
2.2客户端连接redis
1.创建连接redis
2.操作redis
3.关闭redis连接
代码
Jedis jedis = new Jedis("127.0.0.1", 6379);
jedis.set("name","zs");
String name = jedis.get("name");
System.out.println(name);
jedis.close();
常用方法介绍:
设置过期时间: jedis.expire(key, expirationInSeconds);
检查键是否已过期:jedis.ttl(key); 获取键的剩余生存时间(以秒为单位)