Redis基础学习001

一、 Redis概念

    redis是一款高性能的非关系型数据库。

    redis数据类型

            字符串类型: String,哈希类型:hash,列表类型:list,集合类型:set,有序集合类型:sorted set

二、 应用场景:

             缓存,聊天室在线好友,任务队列(秒杀),应用排行榜,分布式架构中session分离

三、redis解压即可使用,以及文件说明:

         redis.windows.conf:配置文件

         redis-cli.exe:  redis的客户端

         redis-server.exe:redis的服务端

四、redis的使用方式

                        redis的数据结构: rdis存储的是key,value 格式的数据,其中key都是字符串,value有五种数据格式

                          value的数据结构:

                                字符串类型: String,

                                 哈希类型:hash,map形式的存储方式

                                 列表类型:list,  linkedlist格式

                                 集合类型:set, hashset格式

                                 有序集合类型:sorted set

       4.1、 使用命令操作redis:

                         字符串类型: value 不能重复

                         存储:  set key value

                         获取:  get key

                         删除:  del key

                          hash类型:

                         存储:  hset  key(集合名)  field value  例如:  hset  myhash   username(key)  liuliu(value)

                         获取:  hset  key(集合名)  field value 例如:  hget  myhash   username

                         删除:  hdel key(集合名)   field

                       获取hash中的所有数据: hgetall

                         列表类型(list):

                        可以添加数据到列表的左边或者右边。

                         存储:  lpush key value 从列表的左边添加,rpush key value 从列表的右边添加,

                         获取: lrange key start end  从列表中 start 到 end 的数据

                         删除: lpop key 删除列表最左边的一个元素,并将元素返回

                         删除: rpop key 删除列表最右边的一个元素,并将元素返回

                         集合类型(set,不允许重复):

                         存储: sadd key value

                         获取: smember key  获取set集合中所有元素

                         删除:srem key value

                        有序集合类型(sorted set):

                           sorted set 会根据 score  的大小进行排序

                         存储: zadd key score  value 例如 : zadd mysorted(集合名)   26(序号) liuliu

                         获取: zrange  key start end  从列表中 start 到 end 的数据

                         删除:zrem key value

                    获取列表中score(序列的值): zrange  key start end withscore  例如:  zrange  mysorted 0  -   -1(负一)  withscore

     4.2、 使用java代码操作redis:

 

 

     4.3、 通用命令:

                   keys * :      查询redis中的所有键

                   type key:   查询键的类型

                   del key:删除指定的key

五、redis的持久化:

                  可以将redis中的数据持久化保存到硬盘中。

        5.1、redis持久化机制:

                        RDB:  默认方式,在一定的时间间隔检测key的变化情况,然后持久化数据

                        AOF:  以日志的方式记录每一条数据持久化到文件中。

            RDB使用方法:

                           找到解压后的redis配置文件 redis.windows.conf,编辑配置文件,找到一下代码

                               save 900 1          十五分钟之后,有一个key改变,就会持久化一次
                               save 300 10        五分钟之后,有大于10个key改变,就会持久化一次
                               save 60 10000    60秒之后,有10000个key改变,就会持久化一次

                             修改配置后文件,需要在cmd 命令行进入到redis解压目录进行启动redis的服务端和客户端,

redis-service.exe redis.windows.conf

                         数据会存储到redis解压目录的一个dump.rdb文件中。

            

               AOF使用方法:

                           找到解压后的redis配置文件 redis.windows.conf,编辑配置文件,找到一下代码

                            appendonly no 修改为 appendonly yes 表示开启AOF,然后找到下面的代码,选择持久化方式

                            # appendfsync always         每一次操作都进行持久化
                               appendfsync everysec (默认开启)  每隔一秒进行一次持久化
                            # appendfsync no                不进行持久化

                         修改完毕后,操作方式如RDB一致。数据会被持久化到redis解压文件下的 appendonly.aof文件中

六、Java客户端 Jedis:

                  一款java操作redis数据库的工具。               

                  jedis操作redis的数据类型,jedis中的方法和redis命令一样。

                 但有个特别的设置字符串方法,就是指定所存储的字符串数据过期时间:setex("键的名称","失效时间",''存储的数据');

                                

七、Jedis的连接池:

              7.1 Jedisd自带的连接池 JedisPoll

                    使用:JedisPoll jedisPoll = new JedisPoll (可以传一个连接池配置对象,主机名,端口号)

                        创建JedisPoll连接池对象,调用getResource()方法获取Jedis的连接,调用redis存储数据的方法。

                     连接池配置对象(JedisPollConfig  ):

                              JedisPollConfig  jedisPollConfig  = new JedisPollConfig  ();                   

                                    edisPollConfig.setMaxTotal(最大连接数);

                                    edisPollConfig.setMaxIdle(最大的空闲连接);

               7.2  连接池的工具类:

                          创建一个 JedisPollUtil工具类。

                           工具类中加载JedisPollConfig  的配置文件 Jedis.properties

package cn.itcast.jedis.util;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

/**
 JedisPool工具类
    加载配置文件,配置连接池的参数
    提供获取连接的方法

 */
public class JedisPoolUtils {

    private static JedisPool jedisPool;

    static{
        //读取配置文件
        InputStream is = JedisPoolUtils.class.getClassLoader().getResourceAsStream("jedis.properties");
        //创建Properties对象
        Properties pro = new Properties();
        //关联文件
        try {
            pro.load(is);
        } catch (IOException e) {
            e.printStackTrace();
        }
        //获取数据,设置到JedisPoolConfig中
        JedisPoolConfig config = new JedisPoolConfig();
        config.setMaxTotal(Integer.parseInt(pro.getProperty("maxTotal")));
        config.setMaxIdle(Integer.parseInt(pro.getProperty("maxIdle")));

        //初始化JedisPool
        jedisPool = new JedisPool(config,pro.getProperty("host"),Integer.parseInt(pro.getProperty("port")));



    }


    /**
     * 获取连接方法
     */
    public static Jedis getJedis(){
        return jedisPool.getResource();
    }
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于学习Redis基础知识,可以按照以下思路进行学习: 1. 了解Redis的概念和特点:首先需要了解Redis是什么,它的主要特点是什么,它为什么被广泛应用于缓存、消息队列、会话管理等场景。 2. 安装和配置Redis:根据你的操作系统,安装Redis并进行相关配置。可以参考Redis官方文档或其他教程来完成这一步。 3. 学习Redis的数据结构:Redis支持多种数据结构,如字符串、哈希、列表、集合和有序集合等。了解每种数据结构的特点、用途和操作命令,并通过实际操作来加深理解。 4. 掌握Redis的常用命令:学习Redis的常用命令,如get、set、hget、hset、lpush、lrange、sadd、smembers等,了解每个命令的具体用法和参数含义。 5. 理解Redis的持久化机制:了解Redis的RDB和AOF两种持久化方式,以及它们的优缺点。学习如何进行备份和恢复数据。 6. 学习Redis的事务和Lua脚本:了解Redis事务的基本概念和使用方法,以及如何使用Lua脚本来进行复杂的操作。 7. 深入了解Redis的性能优化和高可用方案:学习如何优化Redis的性能,包括配置调优、使用合适的数据结构、合理地使用缓存等。同时了解Redis的高可用方案,如主从复制、哨兵模式和集群模式。 8. 学习Redis与其他技术的结合:了解Redis如何与其他技术进行结合,如与Python、Java等编程语言的配合使用,以及与Spring、Django等框架的整合。 以上是学习Redis基础知识的一个思路,你可以根据自己的实际情况和需求进行学习和拓展。推荐参考一些经典的Redis教程和实战案例,通过实际操作和项目实践来提升自己的技能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值