Redis安装及入门

1.Redis安装

(1):下载Redis
Linux官方下载地址:https://redis.io/download
Windows64位下载地址:https://github.com/ServiceStack/redis-windows

测试使用的Windows版本,redis-64.3.0.503,下载并解压
这里写图片描述
(2):修改配置
redis.windows.conf 是Redis相关的配置文件
requirepass 是设置密码,maxmemory 是设置最大内存
增加密码123456,注意 requirepass 123456 顶格,不要有空格,不然会报参数错误。

(3):启动Redis
使用命令提示符,进入Redis目录下,读取配置文件启动 redis-server.exe redis.windows.conf
这里写图片描述
(4):测试Redis
Redis已启动,再开一个命令提示符,进入到该目录,输入 redis-cli -a 123456 ,使用密码123456 连接Redis,进行测试。
若不使用密码,使用时会报 NOAUTH Authentication required 错误。
这里写图片描述

(5):安装Redis
但是这样启动Redis是不是很麻烦呢,每次还需要手动启动。我们可以将Redis安装成服务,如同mysql一样。
关闭之前启动的Redis,在Redis目录下执行 redis-server.exe –service-install redis.windows.conf –loglevel verbose 安装。
安装成功后,启动任务管理器,在服务一栏中可以找到Redis,启动(如果经常使用,可以设置开机自启)。
这里写图片描述
重新连接Redis 进行测试
如果不想每次都进入Redis目录,可以配置Redis的环境变量,将Redis 目录加入path中。
这里写图片描述

2.使用JAVA操作Redis

JAVA操作Redis需要使用 Jedis 提供的API接口
Jedis Client是Redis官网推荐的一个面向java客户端,库文件实现了对各类API进行封装调用。
想要使用Jedis必须加载jar包或者添加maven依赖,jar包可以自己上网下载。
这里建立一个Maven项目,所以在pom.xml中添加依赖:
(因为使用单元测试,所以一并增加Junit,单元测试不想写在test里,所以不加scope了,任性)

<dependencies>
    <dependency>
        <groupId>redis.clients</groupId>
        <artifactId>jedis</artifactId>
        <version>2.9.0</version>
    </dependency>
    <dependency>
    <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
    </dependency>
</dependencies>

使用步骤:
  (1):创建Jedis连接池来管理Jedis,设置JedisPool的参数,不写默认host是本机,端口号6379,超时时间2000
  (2): 实例化Jedis,设置登录密码
使用JedisPool的原因是每次创建Jedis实例建立连接很耗费性能,可以从一个连接池中取出连接对象,用完还回去。
使用连接池的方案还能解决很多同步性问题。

import org.junit.Before;
import org.junit.Test;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @author zh
 */
public class RedisTest {
    JedisPool pool;
    Jedis jedis;

    @Before public void setUp() {
        pool = new JedisPool(new JedisPoolConfig(), "127.0.0.1");

        jedis = pool.getResource();
        jedis.auth("123456");
    }

    /**
     * jedis操作字符串
     */
    @Test public void testString() {
        //添加
        jedis.set("key1", "value1");
        System.out.println(jedis.get("key1"));//执行结果:value1

        //修改
        //1、追加
        jedis.append("key1", "value1"); 
        System.out.println(jedis.get("key1"));//执行结果:value1value1
        //2、覆盖
        jedis.set("key1", "value2");
        System.out.println(jedis.get("key1"));//执行结果:value2

        //删除
        jedis.del("key1");
        System.out.println(jedis.get("key1"));//执行结果:null
    }

    /**
     * jedis操作Map
     */
    @Test public void testMap() {
        Map<String, String> user = new HashMap<String, String>();
        user.put("name", "zh");
        user.put("pwd", "123456");
        jedis.hmset("user", user);
        System.out.println(jedis.hmget("user", "name"));//执行结果:zh

        //删除map中键值
        jedis.hdel("user","pwd");
        System.out.println(jedis.hmget("user", "pwd")); //执行结果:null
        System.out.println(jedis.hlen("user")); //执行结果:1
        System.out.println(jedis.exists("user"));//执行结果:true
        System.out.println(jedis.hkeys("user"));//返回map对象中的所有key 执行结果:[name]
        System.out.println(jedis.hvals("user"));//返回map对象中的所有value 执行结果:[zh]
    }

    /**
     * jedis操作List
     */
    @Test public void testList() {
        //清空
        jedis.del("letter");

        //存放数据
        jedis.lpush("letter", "a");
        jedis.lpush("letter", "b");
        jedis.lpush("letter", "c");
        System.out.println(jedis.lrange("letter", 0, -1));//执行结果:[c, b, a]
    }

    /**
     * jedis操作Set
     */
    @Test public void testSet() {
        //添加
        jedis.sadd("number", "1");
        jedis.sadd("number", "2");
        jedis.sadd("number", "3");
        jedis.sadd("number", "4");
        System.out.println(jedis.smembers("number"));//执行结果:[1, 2, 3, 4]
        //移除4
        jedis.srem("number", "4");
        System.out.println(jedis.smembers("number"));//执行结果:[1, 2, 3]
        System.out.println(jedis.sismember("number", "1"));//判断1是否是number集合的元素 执行结果:true
        System.out.println(jedis.srandmember("number"));//随机元素
        System.out.println(jedis.scard("number"));//返回集合的元素个数 执行结果:3
    }
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Redis 5.0是一个数据结构服务器,通过一组命令提供对可变数据结构的访问。它具有以下优势:性能极高,具有读取110,000次/秒和写入81,000次/秒的速度;支持丰富的数据类型,包括二进制案例的Strings、Lists、Hashes、Sets和Ordered Sets;所有操作都是原子性的,可以保证单个操作的原子性,同时支持事务操作;还提供了其他丰富的特性,如publish/subscribe、通知和key过期等。你可以查看更多详细的文档来了解关于Redis的更多内容。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Redis5.0从入门到精通](https://blog.csdn.net/kangswx/article/details/90317107)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [redis-5.0.0.debug:redis 5.0源代码学习](https://download.csdn.net/download/weixin_42099814/16071900)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [jitredis:这是一个基于luajit的redis分支,由sumadrm维护](https://download.csdn.net/download/weixin_42148975/15894306)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值