Redis基础用法

打印 上一主题 下一主题

主题 1939|帖子 1939|积分 5817

目次
一.初识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 命令行窗口 , 在命令行中执行
  1. redis-cli
复制代码
进入 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();
        }
    }
  
}
  连接不上/报错 得利用设置密码
  1. config set requirepass 12349
复制代码

  1. @Test
  2. void testHash(){
  3.     jedis.hset("user:1","name","jack");
  4.     jedis.hset("user:1","age","21");
  5.     Map<String, String> map = jedis.hgetAll("user:1");
  6.     System.out.println(map);
  7. }
复制代码

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企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

郭卫东

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表