Redis入门
[TOC]
概述
🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣
首先数据库分为关系型和非关系型的数据库
关系型:Mysql
非关系型:Redis
Redis是一个开源的,C语言进行编写的非关系型数据库,他将数据存储在内存中,对于数据的读取速度很快,处理高并发非常方便
Redis的优势
Redis采用键值对的方式进行数据的存储,解决了传统的关系型数据库对于高并发处理的缺陷,能够快速、完美地解决高并发问题
它的数据保存在内存中,存取速度快
支持的存储方式有很多类型,例如String、List、Set、ZSet和Hash
Redis支持集群
支持持久化,可以把内存中的数据持久化到磁盘上面
支持订阅和发布功能
Redis的使用场景
Redis的使用场景包括但不仅限于以下方面
中央缓存
作为计数器来使用
实时攻击防护(防暴力破解)
设置有效期
队列功能(秒杀)
消息订阅系统
Redis常用命令
对Key的常用操作
- key *:获取所有的key
- del key:删除key
- expire key xx:设置key的过期时间(xx秒后过期)
- ttl key:查看key的过期时间
- flushall:清空整个redis服务器中的数据
- flushdb:清空当前数据库中的所有数据(redis默认16个数据库)
- select xx:选择xx数据库
String型
- set key value:设置相应的key和value
- get key:获取相关key的value值
- mset:同时设置多对key和value
- mget:同时获取多对key和value
- incr key:将key中存储的数字值+1(注意:必须是数值型)
- decr key:将key中存储的数字值+1(注意:必须是数值型)
- incrby key:设置自增多少
- decrby key:设置自减多少
List型
List集合是一个有序可重复的队列
- lpush key value:将一个或多个值从左到右插入到list集合中
- rpush key value:将一个或多个值从右到左插入到list集合中
- lpop key:从左边开始移除key值
- rpop key:从右边开始移除key值
- lrange key start stop:返回指定长度的元素(lrange key 0 -1代表返回全部元素)
- lrem key count value:根据count值移除列表key中于参数value相等的元素 (count>0:从表头开始向表尾搜索,移除与 value 相等的元素,数量为 count 。count < 0 : 从表尾开始向表头搜索,移除与 value 相等的元素,数量为 count 的绝对值。count = 0 : 移除表中所有与 value 相等的值)
- inedx key index:返回下标为index的元素
- itrim key start stop:对一个列表进行截取,从start开始,stop结束
Set型
Set集合是一个无序不重复的队列,能够自动去重
- sadd key member:将一个或多个member元素加入到set集合中,拥有自动去重功能
- srem key member:移除集合中的一个或多个元素
- smember key:返回集合key中的所有成员
🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣
Hash型
- hset key name value:添加一个name和value键值对到key这个hash类型
- hget key name:获取hash类型的name键对应的值
- hmset 大key name1 小key name2 小key:添加多个name和key保存到大key中
- hmget key name1 name2:批量获取hash类型的键对应的值
- hkeys:返回哈希表 key 中的所有键
- hvals:返回哈希表 key 中的所有的value值
- hgetall:返回哈希表 key 中,所有的键和值
事务
在Redis中的事务是弱事务,失败并不会回滚,有点多余
- multi:标记一个事务块的开始
- exec:执行所有事务块内的命令
- discard:取消事务,放弃执行事务块内的所有命令
订阅/广播
- SUBSCRIBE channel [channel …]:订阅给定的一个或多个频道的信息。
- PUBLISH channel message:将信息message发送到指定的频道channel
Java操作Redis
创建一个普通java项目
导包
配置连接池
新封装一个工具类,方便以后获取Jedis
1 | package com.ifueen.redis; |
测试
1 | package com.ifueen.redis; |