博客
关于我
【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 中随机抽样:order by rand limit 的替代方案
    查看>>
    MySQL 为什么需要两阶段提交?
    查看>>
    mysql 为某个字段的值加前缀、去掉前缀
    查看>>
    mysql 主从
    查看>>
    mysql 主从 lock_mysql 主从同步权限mysql 行锁的实现
    查看>>
    mysql 主从互备份_mysql互为主从实战设置详解及自动化备份(Centos7.2)
    查看>>
    mysql 主从关系切换
    查看>>
    MYSQL 主从同步文档的大坑
    查看>>
    mysql 主键重复则覆盖_数据库主键不能重复
    查看>>
    Mysql 事务知识点与优化建议
    查看>>
    Mysql 优化 or
    查看>>
    mysql 优化器 key_mysql – 选择*和查询优化器
    查看>>
    MySQL 优化:Explain 执行计划详解
    查看>>
    Mysql 会导致锁表的语法
    查看>>
    mysql 使用sql文件恢复数据库
    查看>>
    mysql 修改默认字符集为utf8
    查看>>
    Mysql 共享锁
    查看>>
    MySQL 内核深度优化
    查看>>