目次
一.初识Redis
1.1SQL 和 NoSql的区别
1.2 熟悉Redis特征:
二.启动连接+利用
三.Redis命令
1.String
2.Hash
3.List
4.Set
5.SortedSet
三.Redis的java客户端
1.Jedis
基本用法
2.SpringDataRedis
一.初识Redis
1.1SQL 和 NoSql的区别
1.2 熟悉Redis
特征:
- 键值(key-value)型,value支持多种不同数据布局,功能丰富
- 单线程,每个命令具备原子性
- 低延迟,速度快(基于内存、IO多路复用、良好的编码)。
- 支持数据长期化(定期将内存搬运到磁盘)
- 支持主从集群、分片集群(数据拆分)
- 支持多语言客户端
二.启动连接+利用
1.先在安装好的redis文件夹下打开
然后就可以直接打开 cmd 命令行窗口 , 在命令行中执行
进入 Redis 客户端
即可开始利用
2. 进入盘算机服务中(右键盘算机-->管理-->服务和应用步调-->服务),再在右侧找到Redis名称的服务,查看启动情况。如未启动,则手动启动之。
然后即可如方法一操纵
注意:用RDM图形化工具也可以 只要先启动了redis 用RDM和cmd窗口均可命令行操纵
三.Redis命令
1.String
如果Value是一个Java对象,例如一个User对象,则可以将对象序列化为JSON字符串后存储:
2.Hash
本身Redis就是一个key-value的布局,而hash的value照旧一个key-value的布局
支持对单个值举行修改
3.List
从左侧推
lpush users 1 2 3
从右侧推
从左侧右侧弹出
lpop users 1
rpop users 1
阻塞弹出 blpop/brpop key second
blpop user1 100
4.Set
Set的常见命令有:
- SADD key member … :向set中添加一个或多个元素
- SREM key member … : 移除set中的指定元素
- SCARD key: 返回set中元素的个数
- SISMEMBER key member:判定一个元素是否存在于set中
- SMEMBERS:获取set中的全部元素
- SINTER key1 key2 … :求key1与key2的交集
sadd s1 a b c
sadd zs lisi wnagwu zhaoliu
sadd ls wangwu mazi ergou
scard zs
sinter zs ls
adiff zs ls
sunion zs ls
ismember zs lisi
ismember ls zhangsan
srem zs lisi
smembers zs
smembers ls
5.SortedSet
每个元素都带上分数,以是才气实现排序
zadd stus 85 jack 89 Lucy 82 Rose 95 Tom 78 Jerry 92 Amy 76 Miles
zrem stus Tom
zscore stus Amy
zrank stus Rose //升序 zrevrank stus Rose//降序
zcount stus 0 80
zincrby stus 2 Amy
zrange stus 0 2 //升序 zrevrange stus 0 2 //降序
zrangebyscore stus 0 80
三.Redis的java客户端
1.Jedis
在Redis官网中提供了各种语言的客户端,地址:https://redis.io/docs/clients/
基本用法
(1) 导入依赖
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.8.0</version>
</dependency>
(2) 创建连接
public class JedisTest {
private Jedis jedis;
@BeforeEach
void setUp(){
//1.创建连接
jedis = new Jedis("192.168.200.130",6379);
//2.设置密码
jedis.auth("1234");
//3.选择库
jedis.select(0);
}
@Test
void testString(){
String result = jedis.set("name", "小明");
System.out.println("result= " + result);
String name = jedis.get("name");
System.out.println("name= "+name);
}
@AfterEach
void tearDown(){
if(jedis!=null){
jedis.close();
}
}
}
连接不上/报错 得利用设置密码
- config set requirepass 12349
复制代码
- @Test
- void testHash(){
- jedis.hset("user:1","name","jack");
- jedis.hset("user:1","age","21");
- Map<String, String> map = jedis.hgetAll("user:1");
- System.out.println(map);
- }
复制代码
2.SpringDataRedis
SpringData是Spring中数据操纵的模块,包含对各种数据库的集成,其中对Redis的集成模块就叫做SpringDataRedis,官网地址:https://spring.io/projects/spring-data-redis
- 提供了对不同Redis客户端的整合(Lettuce和Jedis)
- 提供了RedisTemplate同一API来操纵Redis
- 支持Redis的发布订阅模型
- 支持Redis哨兵和Redis集群
- 支持基于Lettuce的相应式编程(Lettuce之前实在es那里有)
- 支持基于JDK.JSON.字符串.Spring对象的数据序列化及反序列化
- 支持基于Redis的JDKCollection实现
SpringDataRedis中提供了RedisTemplate工具类,其中封装了各种对Redis的操纵。并且将不同数据范例的操纵API封装到了不同的范例中:
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |