博客
关于我
【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 时间操作(当天,昨天,7天,30天,半年,全年,季度)
    查看>>
    MySQL 是如何加锁的?
    查看>>
    MySQL 是怎样运行的 - InnoDB数据页结构
    查看>>
    mysql 更新子表_mysql 在update中实现子查询的方式
    查看>>
    MySQL 有什么优点?
    查看>>
    mysql 权限整理记录
    查看>>
    mysql 权限登录问题:ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)
    查看>>
    MYSQL 查看最大连接数和修改最大连接数
    查看>>
    MySQL 查看有哪些表
    查看>>
    mysql 查看锁_阿里/美团/字节面试官必问的Mysql锁机制,你真的明白吗
    查看>>
    MySql 查询以逗号分隔的字符串的方法(正则)
    查看>>
    MySQL 查询优化:提速查询效率的13大秘籍(避免使用SELECT 、分页查询的优化、合理使用连接、子查询的优化)(上)
    查看>>
    mysql 查询,正数降序排序,负数升序排序
    查看>>
    MySQL 树形结构 根据指定节点 获取其下属的所有子节点(包含路径上的枝干节点和叶子节点)...
    查看>>
    mysql 死锁 Deadlock found when trying to get lock; try restarting transaction
    查看>>
    mysql 死锁(先delete 后insert)日志分析
    查看>>
    MySQL 死锁了,怎么办?
    查看>>
    MySQL 深度分页性能急剧下降,该如何优化?
    查看>>
    MySQL 深度分页性能急剧下降,该如何优化?
    查看>>