Redis入门之Redis安装、配置及常用指令,首发10万字Java开发实战文档

进入 /usr/redis 目录启动 Redis 服务:

./redis-server

在这里插入图片描述

Redis服务端口默认:6379

再打开一个命令行,进入 bin 目录执行客户端连接操作:

./redis-cli –p 6379

Redis 启动服务的细节(加载配置启动)


注:直接使用 ./redis-server 方式启动使用的是 redis-server 这个 shell 脚本中默认配置;

如何在启动 Redis 时指定配置文件启动?

默认在redis安装完成之后再安装目录没有任何配置文件,需要在源码目录中复制 redis.conf 配置文件到安装目录;

cp redis.conf /usr/ redis

加载配置启动 Redis:

./redis-server …/redis.conf

修改 redis 默认端口号:

vi redis.conf # 修改里面 port 7000, 保存退出

开启 Redis 远程连接


默认 Redis 服务器没有开启远程连接,也就是默认拒绝所有远程客户端连接;

1、修改配置文件开启远程连接:

vim redis.conf # 修改配置文件

修改 bind 127.0.0.1bind 0.0.0.0,表示 允许一切客户端连接

在这里插入图片描述

2、修改配置后重启 Redis 服务:一定要加载配置文件启动!

./redis-server …/redis.conf


我使用的是 Redis Desktop Manager 连接 Linux 下的 Redis:

如果连接失败,关闭防火墙 后重新连接:

systemctl stop firewalld.service

Redis 端口占用(kill redis-server 进程)


启用 Redis 出现:

Creating Server TCP listening socket *:6379: bind: Address already in use

6379 地址已经在使用(6379是 Redis 默认的端口)

解决方法:找到 redis-server 的进程 kill 掉

ps -ef | grep -i redis

在这里插入图片描述

kill -9 2700

Redis 常用指令

=============================================================================

数据库相关指令


Redis 库

库是 database 用来存放数据的一个基本单元,每个库都可以存放独立的 key-value 键值对,Redis 中每一个库都有一个唯一名称/编号,从 0 开始。

  • 默认库的个数:16 个(可以在配置文件中修改),库的编号:0 - 15,默认使用 0号库;

  • 切换库的命令:select dbid(库编号)

Redis 操作库的指令

  • 清空当前的库:FLUSHDB

  • 清空全部的库:FLUSHALL

Redis 客户端显示中文

启动 Redis 时后面添加:--raw

./redis-cli -p 7000 --raw

Key 相关指令


DEL 指令

  • 语法 : DEL key [key ...]

  • 作用 : 删除给定的一个或多个 key,不存在的 key 会被忽略。

  • 可用版本: >= 1.0.0

  • 返回值: 被删除 key 的数量。

EXISTS 指令

  • 语法: EXISTS key

  • 作用: 检查给定 key 是否存在。

  • 可用版本: >= 1.0.0

  • 返回值: 若 key 存在,返回1 ,否则返回0。

EXPIRE 指令

  • 语法: EXPIRE key seconds

  • 作用: 为给定 key 设置生存时间(秒),当 key 过期时(生存时间为 0),它会被自动删除。

  • 可用版本: >= 1.0.0

  • 时间复杂度: O(1)

  • 返回值:设置成功返回 1 。

KEYS 指令

  • 语法 : KEYS pattern

  • 作用 : 查找所有符合给定模式 pattern 的 key 。

  • 语法:

KEYS *:匹配数据库中所有 key 。

KEYS h?llo:匹配 hello ,hallo 和 hxllo 等。

KEYS h*llo:匹配 hllo 和 heeeeello 等。

KEYS h[ae]llo: 匹配 hello 和 hallo ,但不匹配 hillo 。特殊符号用 \ 隔开

  • 可用版本: >= 1.0.0

  • 返回值: 符合给定模式的 key 列表。

MOVE 指令

  • 语法 : MOVE key db

  • 作用 : 将当前数据库的 key 移动到给定的数据库 db 当中。

  • 可用版本: >= 1.0.0

  • 返回值: 移动成功返回 1 ,失败则返回 0 。

PEXPIRE 指令

  • 语法 : PEXPIRE key milliseconds

  • 作用 : 这个命令和 EXPIRE 命令的作用类似,但是它以 毫秒 为单位设置 key 的生存时间

EXPIRE 以秒为单位)

  • 可用版本: >= 2.6.0

  • 时间复杂度: O(1)

  • 返回值:设置成功,返回1。key 不存在或设置失败,返回0

PEXPIREAT 指令

  • 语法 : PEXPIREAT key milliseconds-timestamp

  • 作用 : 这个命令和 EXPIREAT 命令类似,但它以 毫秒 为单位设置 key 的过期 unix 时间戳(EXPIREAT 以秒为单位)

  • 可用版本: >= 2.6.0

  • 返回值:如果生存时间设置成功,返回 1 。当 key 不存在或没办法设置生存时间时,返回 0 。

(查看EXPIRE 命令获取更多信息)

TTL 指令

  • 语法 : TTL key

  • 作用 : 以秒为单位,返回给定 key 的剩余生存时间(TTL, time to live)。

  • 可用版本: >= 1.0.0

  • 返回值:

当 key 不存在时,返回 -2 。

当 key 存在但没有设置剩余生存时间时,返回 -1 。

否则,以秒为单位,返回 key 的剩余生存时间。

  • Note : Redis 2.8 以前,当 key 不存在,或者 key 没有设置剩余生存时间时,命令都返回 -1 。

PTTL 指令

  • 语法 : PTTL key

  • 作用 : 这个命令类似于 TTL 命令,但它以毫秒为单位返回 key 的剩余生存时间

(TTL 以秒为单位)

  • 可用版本: >= 2.6.0

  • 返回值: 当 key 不存在时,返回 -2 。当 key 存在但没有设置剩余生存时间时,返回 -1 。

  • 否则,以毫秒为单位,返回 key 的剩余生存时间。

  • 注意 : Redis 2.8 以前,当 key 不存在,或者 key 没有设置剩余生存时间时,命令都返回 -1 。

RANDOMKEY 指令

  • 语法 : RANDOMKEY

  • 作用 : 从当前数据库中随机返回(不删除) 一个 key 。

  • 可用版本: >= 1.0.0

  • 返回值:当数据库不为空时,返回一个 key 。当数据库为空时,返回 nil

RENAME 指令

  • 语法 : RENAME key newkey

  • 作用 : 将 key 改名为 newkey 。

当 key 和 newkey 相同,或者 key 不存在时,返回一个错误。

当 newkey 已经存在时,RENAME 命令将覆盖旧值。

  • 可用版本: >= 1.0.0

  • 返回值: 改名成功时提示OK ,失败时候返回一个错误。

TYPE 指令

  • 语法 : TYPE key

  • 作用 : 返回 key 所储存的值的类型。

  • 可用版本: >= 1.0.0

  • 返回值:

none:key 不存在

string:字符串

list:列表

set:集合

zset:有序集

hash:哈希表

String 类型


内存存储模型:

在这里插入图片描述

| 命令 | 说明 |

| — | — |

| set | 设置一个key/value |

| get | 根据key获得对应的value |

| mset | 一次设置多个key value |

| mget | 一次获得多个key的value |

| getset | 获得原始key的值,同时设置新值 |

| strlen | 获得对应key存储value的长度 |

| append | 为对应key的value追加内容 |

| getrange 索引0开始 | 截取value的内容 |

| setex | 设置一个key存活的有效期(秒) |

| psetex | 设置一个key存活的有效期(毫秒) |

| setnx | 存在不做任何操作,不存在添加 |

| msetnx原子操作(只要有一个存在不做任何操作) | 可以同时设置多个key,只要有一个存在都不保存 |

| decr | 进行数值类型的-1操作 |

| decrby | 根据提供的数据进行减法操作 |

| incr | 进行数值类型的+1操作 |

| incrby | 根据提供的数据进行加法操作 |

| incrbyfloat | 根据提供的数据加入浮点数 |

List 类型


List 列表 相当于 Java 中的 List 集合,特点:元素有序 且 可以重复

在这里插入图片描述

| 命令 | 说明 |

| — | — |

| lpush | 将某个值加入到一个key列表头部 |

| lpushx | 同lpush,但是必须要保证这个key存在 |

| rpush | 将某个值加入到一个key列表末尾 |

| rpushx | 同rpush,但是必须要保证这个key存在 |

| lpop | 返回和移除列表左边的第一个元素 |

| rpop | 返回和移除列表右边的第一个元素 |

| lrange | 获取某一个下标区间内的元素 |

| llen | 获取列表元素个数 |

| lset | 设置某一个指定索引的值(索引必须存在) |

| lindex | 获取某一个指定索引位置的元素 |

| lrem | 删除重复元素 |

| ltrim | 保留列表中特定区间内的元素 |

| linsert | 在某一个元素之前,之后插入新元素 |

Set 类型


特点:Set 类型 相当于Java 中的 Set 集合;特点:元素无序、不可以重复;

在这里插入图片描述

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Java)
img

最后

码字不易,觉得有帮助的可以帮忙点个赞,让更多有需要的人看到

又是一年求职季,在这里,我为各位准备了一套Java程序员精选高频面试笔试真题,来帮助大家攻下BAT的offer,题目范围从初级的Java基础到高级的分布式架构等等一系列的面试题和答案,用于给大家作为参考

以下是部分内容截图
架构面试专题及架构学习笔记导图.png

一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!

AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算

(备注Java)**
[外链图片转存中…(img-rBoaMEVv-1712180936551)]

最后

码字不易,觉得有帮助的可以帮忙点个赞,让更多有需要的人看到

又是一年求职季,在这里,我为各位准备了一套Java程序员精选高频面试笔试真题,来帮助大家攻下BAT的offer,题目范围从初级的Java基础到高级的分布式架构等等一系列的面试题和答案,用于给大家作为参考

以下是部分内容截图
[外链图片转存中…(img-p9qt4p8q-1712180936551)]

一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!

AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算

  • 17
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
2.1 Redis安装配置: 1. 下载Redis安装包:官网下载地址为 https://redis.io/download 。 2. 解压Redis安装包:使用命令 tar -zxvf redis-x.x.x.tar.gz 进行解压。 3. 进入解压后的Redis目录,使用命令 make 编译Redis。 4. 编译完成后,使用命令 make test 进行测试。 5. 安装Redis:使用命令 make install 进行安装。 6. 配置Redis:进入Redis目录中的 /redis.conf 文件,修改配置文件中的端口号、密码等参数。 7. 启动Redis:使用命令 redis-server 启动Redis服务。 2.2 Redis数据操作: Redis是一种内存数据库,它支持多种数据结构,包括字符串、哈希、列表、集合、有序集合等。 下面是Java使用Redis的操作示例: 1. 引入Redis依赖: <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> </dependency> 2. 连接Redis: Jedis jedis = new Jedis("localhost"); 3. 存储数据: jedis.set("key", "value"); 4. 获取数据: String value = jedis.get("key"); 5. 删除数据: jedis.del("key"); 6. 存储哈希: Map<String, String> map = new HashMap<>(); map.put("field1", "value1"); map.put("field2", "value2"); jedis.hmset("key", map); 7. 获取哈希: Map<String, String> map = jedis.hgetAll("key"); 8. 存储列表: jedis.lpush("key", "value1", "value2"); 9. 获取列表: List<String> list = jedis.lrange("key", 0, -1); 10. 存储集合: jedis.sadd("key", "value1", "value2"); 11. 获取集合: Set<String> set = jedis.smembers("key"); 12. 存储有序集合: jedis.zadd("key", 1, "value1"); jedis.zadd("key", 2, "value2"); 13. 获取有序集合: Set<String> set = jedis.zrange("key", 0, -1);

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值