本帖最后由 小石姐姐 于 2019-1-17 09:57 编辑  
 
redis 
        关闭 
                Ctrl+c 
        默认端口: 
                6379 
                //查看redis服务器进程列表  
                tasklist /svc | findStr "redis" 
                //查看端口为6379的链接 
                netstat -ano | findStr "6379" 
 
        数据不经常发生改变的情况下可以使用缓存 
 
        概念 
                非关系型数据库 
                一款高性能的NOSQL系列的非关系型数据库 
 
                功能:用于数据缓存 
 
                特点: 
                        1.数据之间没有关联关系 
                        2.数据存储在内存中 
                        3.查询速度快(缓存) 
                        4.成本低 
                        5.存储格式固定,key  value 
                        6.独立性高 
                缺点: 
                        1.没有统一标准,学习成本高 
                        2.一般非关系型数据库不支持事务处理(redis支持) 
                        3.只能存一些不经常发生改变的数据(作为关系型数据库的补充) 
 
                tip:一般会将数据存储在关系型数据库中,在非关系型数据库中备份存储关系型数据库 
 
 
        下载安装 
                直接解压安装包即可使用 
                        .conf :配置文件 
                        cli.exe:客户端 
                        server.exe:服务器 
                        注:客户端和服务器端都需要开启,先开服务器 
        命令操作 
                数据结构 
                        1.redis存储的是:key,value格式的数据,其中key都是字符串,value有5种不同的数据结构 
                                value的数据结构 
                                        1.字符串      String 
                                        2.哈希类型    hash:map格式 
                                        3.列表类型(数据存储可重复有序)    list:linkedlist格式 
                                        4.集合类型(数据存储不可重复,无序)    set 
                                        5.有序集合(数据存储不可重复,有序)    sortedset 
 
                命令: 
                        1.字符串 
                                存储: 
                                        set key value 
                                获取 
                                        get key  
                                删除 
                                        del key 
                        2.哈希类型 
                                存储 
                                        hset map名称 field(map集合内的key的名) value 
 
                                获取 
                                        hget map名称 field  获取指定键对应的field对应的值 
                                        hgetall map名称  获取所有键和值 
                                删除 
                                        hdel map名称 field 
                        3.列表类型:可以添加一个元素到列表的头部或者尾部 
                                存储 
                                        从列表左边添加元素: 
                                                lpush list名称 value 
                                        从列表右边添加元素: 
                                                rpush list名称 value 
                                获取 
                                        lrange list名称 start end  范围获取 
 
                                删除 
                                        lpop list名称 : 删除列表最左边的元素,并将被删除的元素返回 
                                        rpop list名称 : 删除列表最右边的元素,并将被删除的元素返回 
                        4.集合类型 
                                存储 
                                        sadd set名称 value 
                                获取 
                                        smembers  set名称 --> 获取set集合中所有元素 
                                删除 
                                        srem set名称 value  删除set集合中的某个元素 
                        5.有序集合(用于排行榜) 
                                存储 
                                        zadd sortedset名称 score(权重) value 
                                                score用于排序,影响存储先后顺序 
 
                                获取 
                                        zrange sortedset名称 start end 
                                                在语法后加上withscores可查看分数 
                                删除 
                                        zrem sortedset名称 value 
 
                        6.通用命令 
                                1.keys * :查询所有的键名 
                                2.type key :获取键对应的value对应的类型 
                                3.del key(集合或列表的名字) :删除指定的key value 
        持久化操作 
                概念: 
                        当redis服务器重启,数据会丢失,我们可以将redis内存中的数据持久化保存到硬盘的文件中 
 
                持久化机制 
 
                        RDB:默认的 
                                不需要进行配置,默认就使用这种机制 
                                        在一定的间隔时间中,检测key的变化情况,然后持久化数据 
                                使用: 
                                        1.编辑redis.windows.conf文件 
                                                save 900 1     在900秒后至少有1个key发生改变,就会持久化一次 
                                                save 300 10           在300秒后至少有10个key发生改变,就会持久化        一次 
                                                save 60 10000  在60秒后至少有10000个key发生改变,就会持久化一次 
                                        2.重新启动服务器,并指定配置文件名称 
                                                点击文件地址栏cmd --> redis-server.exe --> 配置文件名 
 
                        AOF:日志记录方式 
                                可以记录每一条命令的操作,可以每一次命令操作后,持久化数据 
 
        使用Java客户端jedis操作redis 
                概念: 
                        一款Java操作redis数据库的工具 
                使用步骤 
                        1.下载jedis的jar包 
                        2.使用 
                                获取连接(地址,端口号) 
                                        Jedis jedis = new Jedis(地址,端口号); 
                                                如果不输入参数,默认是本机的地址和端口号,建议输入 
                                操作 
                                        jedis.命令/方法 
                                关闭连接 
                                        jedis.close 
                jedis操作各种redis的数据结构 
                        jedis.setex(key,时间,value);在设置的时间到了后会把指定的键自动删除 
                                设置有效期,redis自动删除 
 
                连接池工具类: JedisPool 
                        连接池 
                                使用: 
                                        1.创建JedisPool连接池对象 
                                                JedisPool pool = new JedisPool(); 
                                        2.调用方法getResource()方法获取Jedis连接 
                                                Jedis jedis = jedisPool.getResource(); 
                                        3.使用         
                                                jedis.命令 
                                        4.关闭连接 
                                                jedis.close(); 
                        工具类 
                                加载配置文件 
 
        案例: 
                缓存优化redis 
 
                数据库的数据一旦发生变化,则需要更新缓存 
                        数据库的表执行了增删改的操作,需要将redis缓存数据情况,再次存入 
                        在service中的增删改中将redis删除,从新创建缓存 
 
                缓存思路 
                        先去缓存中查询数据 
                        如果有数据 
                                --> 不是第一次查询,直接把缓存查到的结果返回 
                        如果没有数据 
                                --> 是第一次查询,去dao层执行查询操作接收结果,接收到结果后需要把结果'存到缓存'中(对数据格式进行调整) 
 
 
 |   
        
 
    
    
    
     
 
 |