Redis

简介: Redis

1. Redis简介

Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。


它支持字符串、哈希表、列表、集合、有序集合,位图,hyperloglogs等数据类型。内置复制、Lua脚本、LRU收回、事务以及不同级别磁盘持久化功能,同时通过Redis Sentinel提供高可用,通过Redis Cluster提供自动分区

学习网址: https://www.w3cschool.cn/redis/

www.redis.cn

www.redis.net.cn

Redis用途:1. 数据库 2. 缓存

集群:哨兵、主从、分片式

2. Docker中安装Redis

2.1.执行命令

docker run -p 6379:6379 \
-v /home/javaxl/data/myredis/data:/data \
-v /home/javaxl/data/myredis/conf:/usr/local/etc/redis \
-di --name myredis redis:5 \
-- appendonly yes \
--requirepass "123456"

查看正在运行的docker容器

docker ps

2.2.开放防火墙

PS: 关闭防火墙不需要执行

2.2.1.增加防火墙规则
#开放端口
firewall-cmd --zone=public --add-port=6379/tcp --permanent

2.2.2.更新防火墙规则
firewall-cmd --reload

#防火墙列表
firewall-cmd --zone=public --list-ports
#防火墙状态
systemctl status firewalld
#启动防火墙
systemctl start firewalld
#关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service

3.安装redis-desktop-manager

3.1.双击安装包

点击next

3.2.同意许可协议

点击I Agree

3.3.选择安装位置

3.4.等待安装完成

3.5.完成安装

3.6.主界面

3.7.点击Connect to Redis Sercer

3.8.新建连接

3.9.连接成功

4.Redis命令

4.1.Redis字符串(string)

# set key          保存
set name zs
set age 12
set sex nan

# get key          //获取
get name

# type key         //查看类型
type age            #string 说明type返回的是键值对存储类型,而不是值存储类型

# keys *或keys key 查看所有或者指定的key
keys *

# SETEX KEY_NAME TIMEOUT VALUE  // 给键值对设置过期时间
setex zs 60 live

# ttl key   // 获取键值对剩余的存活时间
ttl zs

4.2.Redis哈希

Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。

# hset key field1 value1 [field2 value2]  
#同时将多个field-value设置到哈希表key中
hset user name zs age 12 sex nv

# hget key field  #获取指定的字段值
hget user age

# hdel key field  #删除指定的字段值
hdel user age

# hgetall key  #查询指定key的所有字段
hgetall user

# hexists key field  #查询指定key中的字段是否存在
hexists user name

# hlen key  #获取指定key中的长度
hlen user

4.3.Redis列表(List)

Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)

# lpush key value1 value2 value3          
#将一个或多个值插入到列表头部
lpush en a b c d e f g

# llen key #获取列表的长度
llen en

# lindex key index  #根据索引获取列表中的元素
lindex en 1   #返回f,说明下标从0开始,同时先进后出

# lrange key start sop #查看指定范围内的元素
lrange en 1 3 #返回fed,说明下标从0开始,同时先进后出

4.4.Redis集合(Set)

Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。

# sadd key value1 [value2] #向集合添加一个或多个元素
sadd hobby lanqiu zuqiu bingpangqiu zhuoqiu

# scard key  #获取集合中的元素数量
scard hobby

# exists key #是否存在
exists hobby

4.5.有序集合(sort set)

https://www.w3cschool.cn/redis/redis-sorted-sets.html

5.Java代码操作Redis

5.1.添加pom依赖

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

5.2.Java连接

package com.zking.ssm.redis;

import redis.clients.jedis.Jedis;

/**
 * @Author zjzaki
 * @Package com.zking.ssm.redis
 * @Date 2023/8/4 11:26
 */
public class Demo01 {
    public static void main(String[] args) {
        Jedis jedis = new Jedis("192.168.101.132", 6379);
        jedis.auth("123456");
        System.out.println(jedis.ping());
        jedis.select(1);
    }
}

5.2.Java操作redis

5.2.1.Redis字符串(String)
// set key          //保存
jedis.set("string_name","wangwu");
// get key          //获取
System.out.println(jedis.get("string_name"));
//type key         //查看类型
System.out.println(jedis.type("string_name"));
// keys * 或keys key //查看所有或者指定的key
System.out.println(jedis.keys("*"));
//SETEX KEY_NAME TIMEOUT VALUE    // 给键值对设置过期时间
jedis.setex("string_zs",30,"活着");
// ttl key    // 获取键值对剩余的存活时间
System.out.println(jedis.ttl("string_zs"));
5.2.2.Redis哈希(Hash)
//hset key field1 value1 [field2 value2]  #同时将多个field-value设置到哈希表key中
jedis.hset("java_user","name","zs");
jedis.hset("java_user","sex","男");
jedis.hset("java_user","age","12");

//  hget key field #获取指定的字段值
System.out.println(jedis.hget("java_user", "sex"));

// hdel key field #删除指定的字段值
jedis.hdel("java_user","sex");

// hgetall key  查询指定key的所有字段
Map<String, String> java_user_map = jedis.hgetAll("java_user");
System.out.println(java_user_map);

// hexists key field 查询指定key中的字段是否存在
Boolean java_user = jedis.hexists("java_user","sex");
System.out.println(java_user);

// hlen key 获取指定key中的长度
Long java_user_len = jedis.hlen("java_user");
System.out.println(java_user_len);
5.2.3.Redis列表(List)
//lpush key value1 value2 value3 #将一个或多个值插入到列表头部
jedis.lpush("java_hobby", "篮球", "足球", "羽毛球");
// llen key 获取列表的长度
Long java_hobby_len = jedis.llen("java_hobby");
System.out.println(java_hobby_len);
//lindex key index #根据索引获取列表中的元素
System.out.println(jedis.lindex("java_hobby", 0));
// lrange key start sop #查看指定范围内的元素
System.out.println(jedis.lrange("java_hobby", 0, 1));
5.2.4.Redis集合(Set)
// sadd key value1 [value2] 向集合添加一个或多个元素
jedis.sadd("java_set_user","张三","李四","王五","张三丰");
// scard key #获取集合中的元素数量
System.out.println(jedis.scard("java_set_user"));
// exists key 是否存在
System.out.println(jedis.exists("java_set_user"));
目录
相关文章
|
SQL 数据可视化 关系型数据库
开源低代码平台推荐!10款优秀的开源低代码平台!
本文介绍了10款免费开源低代码开发平台,包括JeeLowCode、Ample、WaveMaker等,它们通过减少代码编写量,提供高效、灵活的开发工具,帮助企业快速构建复杂应用,支持企业数字化转型。各平台特色鲜明,适用于不同开发需求和应用场景。
|
Java API
DirectByteBuffer内存释放原理
DirectByteBuffer内存释放原理
407 0
EMQ
|
SQL 数据可视化 Serverless
HStream Console、HStreamDB 0.14 发布
近两个月,HStreamDB相继发布了0.13和0.14版本,包含多项已知问题修复,同时发布了全新的HStream Console组件,带来了简洁友好的图形化管理界面。
EMQ
310 0
HStream Console、HStreamDB 0.14 发布
|
Oracle 安全 Java
JDK11变化详解,JDK8升级JDK11详细指南
官方英文原版: https://docs.oracle.com/en/java/javase/11/migrate/index.html#JSMIG-GUID-C25E2B1D-6C24-4403-8540-CFEA875B994A Java平台,标准版 Oracle JDK迁移指南 第11版 E94894-01 2018年9月 入门 本指南的目的是帮助您识别潜在问题,并在将现有Java应用程序迁移到最新JDK版本时为您提供有关如何继续的建议。
9668 0
|
Android开发
【Android 逆向】修改 Android 系统文件 ( Android 逆向中需要经常修改的文件和目录 | 在 root 后的设备中获取 / 目录的 rw 权限后注意事项 )
【Android 逆向】修改 Android 系统文件 ( Android 逆向中需要经常修改的文件和目录 | 在 root 后的设备中获取 / 目录的 rw 权限后注意事项 )
538 0
spring-boot整合protobuf
protobuf区是Google的语言中立,平台中立,可扩展的机制,用于序列化结构化数据 - 想想XML,但更小,更快,更简单。您可以定义数据的结构化结构,然后使用特殊生成的源代码轻松地将结构化数据写入和读取各种数据流,并使用各种语言。
4011 0
|
存储 数据库 Windows
|
8天前
|
存储 弹性计算 缓存
阿里云服务器租赁费用:新版租赁收费标准及活动报价参考
本文更新了2026年阿里云全系列云服务器租赁活动报价,所有特惠资源均可前往阿里云活动中心选购,整体覆盖从个人入门到企业级高性能场景的全梯度需求。其中轻量应用服务器主打极致性价比,2核2G峰值200M带宽配置每日10点、15点限时抢购价仅38元/年,2核4G配置379元/年起;高性价比的经济型e实例、通用算力型u2i实例覆盖2核4G至4核32G全档位,适配开发测试与中小型企业业务;搭载英特尔至强6处理器的第九代c9i企业级实例算力较上代提升20%,支撑高并发生产环境,不同实例规格价差清晰,用户可根据自身业务负载与预算灵活选型。
1797 118
阿里云服务器租赁费用:新版租赁收费标准及活动报价参考

热门文章

最新文章