博客
关于我
【JavaWeb】Redis(40)
阅读量:547 次
发布时间:2019-03-09

本文共 2081 字,大约阅读时间需要 6 分钟。

Redis知识总结

引言

这段时间,我在准备参加一个算法比赛。为了和其他队友高效交流,我决定加快Java学习进度。在这过程中,Redis这个高性能的key-value数据库让我印象深刻,因此打算详细记录相关知识。

Redis概述

Redis是一个开源免费的、基于BSD协议的、高性能非关系型数据库,它以内存存储和高效操作著称。Redis的核心存储单元是key-value对,为开发者提供了灵活的数据存储选择。

Redis的应用场景

  • 缓存:快速访问、短连接、新闻内容、商品信息等。
  • 聊天室:存储好友在线状态或聊天记录。
  • 任务队列:秒杀、抢购、12306等实时性高的场景。
  • 应用排行榜:记录和更新应用排名。
  • 网站访问统计:跟踪用户行为和访问数据。
  • 数据过期处理:精确到毫秒自动清理数据。
  • 分布式架构:用于session管理和集群节点间通信。

Redis下载与安装

虽然Redis官方不支持Windows系统,但可以选择使用维护版本。访问以下地址下载Redis:

https://github.com/MicrosoftArchive/redis/releases

安装时,请按照下列步骤操作:

  • 使用Teracotta或其他第三方工具运行,
  • 如下图所示完成安装设置。
  • Redis命令操作

    Redis支持多种数据类型,主要包括以下几种:

    1. string类型

    示例:

    redis> set name "haha"redis> get name"haha"

    2. hash类型

    redis> hmset user:123 age 30 name hahaOKredis> hm get user:123"age":30, "name":"haha"

    3. list类型

    增加元素

    redis> lpush list:1 hahaOK

    取出元素

    redis> lrange list:1 0"haha"

    删除元素

    redis> lpop list:1"haha"

    4. set类型

    redis> sadd set:1 haha userOK

    5. sortset类型

    redis> s add data:1 1 2 3OKredis> s sort data:1[    "3", "2", "1"]

    6. 其他常用命令

    keys用于获取所有以特定前缀开头的键。expire命令用来设置键的过期时间。

    数据持久化

    Redis运行于内存上,重启后数据丢失,所以需要进行持久化存储。使用以下方式实现:

    RDB

  • Open Redis Windows Station:C:\...\redis\windows\redis-server.exe redis.windows.conf
  • 在配置文件中设置持久化参数:
    save 900 1save 300 10save 60 10000
  • AOF

    AOF(Append-only File)采用写入日志的方式,确保数据的安全性。与RDB相比,AOF支持复杂的持久化操作,适合高稳定性的场景。

    Jedis操作

    安装与使用

  • 添加Jedis jars包。
  • 创建连接:
  • public class Demo01 {    public static void main(String[] args) {        Jedis jedis = new Jedis("localhost", 6379);        jedis.set("name", "haha");        jedis.close();    }}

    Connection Pool

    为了高效管理资源,推荐使用Jedis连接池:

    public class JedisDemo {    private static final String ADDR = "localhost";    private static final int PORT = 6379;    public static void main(String[] args) {        JedisPool jedisPool = new JedisPool(3, 1000);        jedisPool.getResource().set("name", "haha");        jedisPool.close();    }}

    工具类操作

    public class RedisTools {    private static final JedisPool jedisPool = new JedisPool();    public static void main(String[] args) {        Jedis jedis = jedisPool.getResource();        jedis.set("data", "haha");        jedis.close();    }}

    通过上述步骤,可以轻松进行Redis数据库操作。

    转载地址:http://phgiz.baihongyu.com/

    你可能感兴趣的文章
    MySQL中interactive_timeout和wait_timeout的区别
    查看>>
    mysql中int、bigint、smallint 和 tinyint的区别、char和varchar的区别详细介绍
    查看>>
    mysql中json_extract的使用方法
    查看>>
    mysql中json_extract的使用方法
    查看>>
    mysql中kill掉所有锁表的进程
    查看>>
    mysql中like % %模糊查询
    查看>>
    MySql中mvcc学习记录
    查看>>
    mysql中null和空字符串的区别与问题!
    查看>>
    MySQL中ON DUPLICATE KEY UPDATE的介绍与使用、批量更新、存在即更新不存在则插入
    查看>>
    MYSQL中TINYINT的取值范围
    查看>>
    MySQL中UPDATE语句的神奇技巧,让你操作数据库如虎添翼!
    查看>>
    Mysql中varchar类型数字排序不对踩坑记录
    查看>>
    MySQL中一条SQL语句到底是如何执行的呢?
    查看>>
    MySQL中你必须知道的10件事,1.5万字!
    查看>>
    MySQL中使用IN()查询到底走不走索引?
    查看>>
    Mysql中使用存储过程插入decimal和时间数据递增的模拟数据
    查看>>
    MySql中关于geometry类型的数据_空的时候如何插入处理_需用null_空字符串插入会报错_Cannot get geometry object from dat---MySql工作笔记003
    查看>>
    mysql中出现Incorrect DECIMAL value: '0' for column '' at row -1错误解决方案
    查看>>
    mysql中出现Unit mysql.service could not be found 的解决方法
    查看>>
    mysql中出现update-alternatives: 错误: 候选项路径 /etc/mysql/mysql.cnf 不存在 dpkg: 处理软件包 mysql-server-8.0的解决方法(全)
    查看>>