博客
关于我
【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一站到底!华为首发MySQL进阶宝典,基础+优化+源码+架构+实战五飞
    查看>>
    MySQL万字总结!超详细!
    查看>>
    Mysql下载以及安装(新手入门,超详细)
    查看>>
    MySQL不会性能调优?看看这份清华架构师编写的MySQL性能优化手册吧
    查看>>
    MySQL不同字符集及排序规则详解:业务场景下的最佳选
    查看>>
    Mysql不同官方版本对比
    查看>>
    MySQL与Informix数据库中的同义表创建:深入解析与比较
    查看>>
    mysql与mem_细说 MySQL 之 MEM_ROOT
    查看>>
    MySQL与Oracle的数据迁移注意事项,另附转换工具链接
    查看>>
    mysql丢失更新问题
    查看>>
    MySQL两千万数据优化&迁移
    查看>>
    MySql中 delimiter 详解
    查看>>
    MYSQL中 find_in_set() 函数用法详解
    查看>>
    MySQL中auto_increment有什么作用?(IT枫斗者)
    查看>>
    MySQL中B+Tree索引原理
    查看>>
    mysql中cast() 和convert()的用法讲解
    查看>>
    mysql中datetime与timestamp类型有什么区别
    查看>>
    MySQL中DQL语言的执行顺序
    查看>>
    mysql中floor函数的作用是什么?
    查看>>
    MySQL中group by 与 order by 一起使用排序问题
    查看>>