请选择 进入手机版 | 继续访问电脑版

好程序员-千锋教育旗下高端IT职业教育品牌

400-811-9990
我的账户
好程序员

专注高端IT职业培训

亲爱的猿猿,欢迎!

已有账号,请

如尚未注册?

[JavaEE] 好程序员Java培训学习路线分享Redis快速入门

[复制链接]
叶子老师 发表于 2019-9-19 15:59:36 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
好程序员Java培训学习路线分享Redis快速入门,Redis的启动
1.基于docker启动
1) 不带配置文件启动 docker run -p 6379:6379 redis
2) 带配置文件启动
        docker run -p 6379:6379 -v /usr/local/docker/redis/redis.conf:/usr/local/etc/redis/redis.conf redis redis-server /usr/local/etc/redis/redis.conf
3)使用docker容器内的客户端来操作redis服务器
以交互的方式进入到redis容器,再在/usr/local/bin/使用redis-cli工具连接redis服务器
图片1.png
图片2.png
得输密码
auth java1904
2.使用原生tar包启动
1)从官方下载tar.gz压缩包,上传到linux
2)解压
        tar -zxvf  ...
3)下载make  
   apt-get install make
4)下载gcc,因为redisc写的,需要gcc工具
        apt-get intall gcc
5) 进入解压出来的文件夹内,然后使用make进行编译
6)进入 src,执行./redis-server  ../redis.conf    开启服务端
7)使用redis内部的客户端,来连接服务端,对redis服务端进行操作
  src里    执行   ./redis-cli
图片3.png
二、Redis桌面版客户端工具的使用
图片4.png
三、Redis的配置文件
redis.conf
在启动redis服务器时,可以通过配置文件里面的参数的设置,来设置服务器,如果启动redis服务器,不带配置文件,那么参数都是默认值。
1.解除本机绑定
        # bind  127.0.0.1 注释掉
2.redis数据库默认拥有16个库,数据会被存放在这16个库中的某一个。3.设置密码
在连接时需要输入密码
图片5.png
四、JavaRedis客户端:Jedis
redis自带的客户端: redis-cli
1.引入依赖
<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>2.9.0</version>
</dependency>
2.使用Jedis工具类
public class MyRedis {
    public static void main(String[] args) {
        Jedis jedis = new Jedis("192.168.2.128",6379);
        jedis.auth("java1904");
        jedis.set("两个月后的目标","12k");
        String target = jedis.get("两个月后的目标");
        System.out.println(target);
    }
}
五、Redis的五大数据类型1. String类型        1)增删改查
                set  key  value    添加/修改  键值对
                get  key  ==> value   根据键得到值
                del  key1 [key2...]  根据键删除键值对,返回值删除的个数
图片6.png
               
                mset  k1 v1  k2 v2 [key value ...]    一次性插入多个值
                mget  k1  k2              一次性拿多个值
       
        2)其他命令
        incr      对整数进行自增,浮点数也不行:   set  k1  1000          incr k1
        decr    对整数进行递减
        incrby  键  步长    一次增长指定步长的值   
        decrby  键  步长   一次减少指定步长的值
2. hash类型
        数据类型的特点:
                -  值:  键值对
                        而且 键里可以存放多个键值对
        hset   k1   -
        hget   k1  
       
        hmset  k1  -值  键-...
        hmget  k1  键  键...
        hdel    k1   键  键...
        其他命令:
        hlen  k1
                查看k1有几个键值对
        hexists k1
                查看键是否存在于k1
        hgetall k1
                获得K1中的所有的键值对
注意: 在实际使用时,往往会使用这种命名方式:  通过:”对键名进行分割,以起到语义化的效果。
        比如  “user:1001:dreams”  : 用户id1001的这个用户的所有梦想
        如果键冲突了,那么如果之前的数据类型与现在的数据类型不同,则会报这个异常:
redis.clients.jedis.exceptions.JedisDataException: WRONGTYPE Operation against a key holding the wrong kind of value
使用jedis进行操作时,hmset中需要存入map集合
HashMap<String,String> map = new HashMap<String, String>();
map.put("d1","10000");
map.put("d2","20000");
jedis.hmset("user:1001:dreams",map);
hash类型的应用场景: 存对象时更方便
图片7.png
3. 列表类型 List
        列表可以实现栈和队列的效果
图片8.png
        lpop 从左边出列队
图片9.png
        rpush 和  rpop
图片10.png
模拟栈的效果:
模拟队列的效果: 先进先出
其他命令:
LLEN key,查询列表的长度
LINDEX key index,获取指定索引的值 get(int index)
LSET key index value,设置指定索引的值
Ltrim key start end 保留指定索引范围的值
4.Set类型
Sadd key element [element] 添加元素
Scard key 计算元素个数
Smembers key 获取所有的元素
Srem key element [element] 删除元素  
Sismember key element 判断元素是否在集合中,存在返回1,否则返回0
Spop key 从集合随机弹出元素
5.zset类型
        是一个有序的集合
常用命令:
Zadd key score member [score member ...] 添加成员,并为每个成员设置分数
Zcard key 计算成员的个数
Zscore key member 计算某个成员的分数
Zrank key member 计算某个成员的排名
Zincrby key increment member 增加成员的分数
Zrange key start end withscores 返回指定排名范围的成员
zrevrange key start end 逆序展示
Zrem key member [member] 删除成员、
jedis的操作
@Test
public void testZset(){
    Jedis jedis = new Jedis("192.168.2.128",6379);
    jedis.auth("java1904");

    HashMap<String,Double> map = new HashMap<String, Double>();

    map.put("l1",100d);
    map.put("l2",200d);


    // map是一个HashMap<String,Double> 的map
    jedis.zadd("order1",map);

    jedis.zincrby("order1",200d,"l1");

    Set<String> order1 = jedis.zrevrange("order1", 0, -1);

    System.out.println(order1);


}
六、使用Jedis连接池
package com.qf.redis.util;

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

public class JedisPoolUtil {

    private static JedisPool pool ;

    static{

        JedisPoolConfig config = new JedisPoolConfig();

        config.setMaxIdle(100);
        config.setMaxWaitMillis(2000);
        config.setMaxTotal(200);

        String host = "192.168.2.128";
        pool = new JedisPool(config,host);

    }




    public static Jedis getJedisFromPool(){

       return  pool.getResource();

    }

}
使用连接池:
Jedis jedis = JedisPoolUtil.getJedisFromPool();

jedis.auth("java1904");
好程序员Java培训官网:http://www.goodprogrammer.org/

精彩内容,一键分享给更多人!
回复

使用道具 举报

您需要登录后才可以回帖

本版积分规则

关注我们
好程序员
千锋好程序员

北京校区(总部):北京市海淀区宝盛北里西区28号中关村智诚科创大厦

深圳西部硅谷校区:深圳市宝安区宝安大道5010号深圳西部硅谷B座A区605-619

杭州龙驰智慧谷校区:浙江省杭州市下沙经济技术开发区元成路199号龙驰智慧谷B座7层

郑州校区:郑州市二七区航海中路60号海为科技园C区10层、12层

Copyright 2007-2019 北京千锋互联科技有限公司 .All Right

京ICP备12003911号-5 京公安网11010802011455号

请您保持通讯畅通1对1咨询马上开启