Redis常见使用说明

本文介绍了Redis数据库的安装步骤及在Java中的使用方法。包括下载安装、设置密码、使用客户端进行基本操作等内容,并提供了Java代码示例。

1 概述
Remote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached(是一个自由开源的,高性能,分布式内存对象缓存系统)这类key/value存储的不足,在部分场合可以对关系数据库起到很好的补充作用(例如:大数据量下显示列表、处理过期项目、队列等)。它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客户端,使用很方便。本文中主要介绍安装方式和在java语言中的一些常见使用方式。
2 下载安装
2.1 下载地址

下载地址:https://redis.io/;

2.2 安装启动
下载到的Redis支持32bit和64bit。根据自己实际情况选择,将64bit的内容cp到自定义盘符安装目录取名redis,如 C:\reids。

打开一个cmd窗口,使用cd命令切换目录到 redis 运行 redis-server.exe。

然后再打开一个cmd窗口也是切换目录到 redis运行,运行redis-cli.exe -h 127.0.0.1 -p 6379命令。如下图所示成功连接。

2.3 设置密码
可以通过命令设置密码或修改密码,如下图所示。

可以通过命令验证密码,成功连接后如下图。

3 Redis客户端
3.1 下载安装
下载地址:https://redisdesktop.com/download。

点击客户端安装程序,下一步....,完成打开客户端界面就可以了,省略安装截图。

3.2 操作使用

打开客户端,主界面图如下:

3.2.1 配置连接
1. 点击绿色加号Connect to Redis Server按钮,弹出配置窗口,输入对应信息,点击OK;
a) Name:连接别名;
b) Host:redis服务器地址;
c) Port:Redis端口,默认为6379;

d) Auth:连接密码,如果设置了密码,就需要填入。

2. 成功连接后,就可以查看到数据库中的数据了。

3.2.2 增改数据

1. 右键点击数据,选择Add new key选项。

2. 填入Key和Value,类型以String为例,点击save。

3. 如下图所示,添加成功,如需修改value,可直接在文本中修改后点击save,但如果修改key,点击Rename按钮。

3.2.3 过滤数据

1. 右键点击数据,选择Filter keys选项。

2. 在弹出的窗口中填入要查询的信息后点击OK,此处为模糊查询。

3. 过滤添加好后,会在数据库上显示过滤内容。

4. 取消过滤,再次右键点击数据库,选择Reset keys filter。

3.2.4 删除数据

进入对应的数据中,点击Delete按钮。

4 Java代码操作
4.1 样例工程

创建样例工程redis,导入jedis-2.1.0.jar包,如下图所示:

如下图,点击OK。

4.2 测试连接
写一个mian函数测试连接

控制台返回信息如下,提示连接成功。

4.3 Set方法

用于设置给定 key 的值。如果 key 已经存储其他值, SET 就覆写旧值,且无视类型。

4.4 getSet方法

Redis Getset 命令用于设置指定 key 的值,并返回 key 旧的值。

4.5 hset方法
Redis Hset 命令用于为哈希表中的字段赋值 ,如果哈希表不存在,一个新的哈希表被创建并进行 HSET 操作,如果字段已经存在于哈希表中,旧值将被覆盖。

1. 如果字段是哈希表中的一个新建字段,并且值设置成功,返回 1 。

2. 如果哈希表中域字段已经存在且旧值已被新值覆盖,返回 0 。

5 附件说明介绍
1. 样例工程:java的操作redis的样例代码;
2. jedis-2.1.0.jar:redis样例工程所以来jar包;
3. redis-2.4.5-win32-win64.zip:redis数据库服务器;
4. redis64-2.6.12.1.rar:redis客户端。

附件截图如下:

附件及文档     下载

<think> 嗯,用户这次想了解Redis在企业中的常见使用案例。从用户的历史会话看,ta之前关注过Redis的部署方式和性能优化,现在转向实际应用场景,说明ta可能正在做技术选型或架构设计。 用户提供的引用材料涵盖了Redis的多方面特性:引用[4]直接提到了分布式锁这个典型案例,引用[3]强调Redis在高性能数据平台中的作用,引用[2]则展示了不同语言客户端的支持情况。这些都很适合作为案例支撑。 需要特别注意几个技术细节:1)分布式锁的实现要用NX参数和Lua脚本保证原子性;2)缓存穿透/雪崩的防御方案;3)持久化配置对数据安全的影响。用户似乎偏好具体的技术实现,所以回复里可以嵌入关键代码片段。 用户可能还想知道不同行业的选择差异。比如电商重视库存缓存,社交网站需要会话管理,这都是很好的补充案例。不过要控制深度,避免偏离“常见案例”这个核心诉求。 对了,上次回复快速排序时用户认可了代码示例的呈现方式,这次继续沿用code block展示核心语法,但要把重点放在业务场景映射而非技术细节上。 </think> 以下是Redis在企业中的常见使用案例,结合其高性能、丰富数据结构及分布式特性实现核心业务优化: --- ### 一、高性能缓存(核心场景) 1. **数据库查询加速** - 缓存热点数据(如商品详情、用户信息),显著降低数据库压力 - 典型配置:`SET product:1001 "{name:'iPhone', price:6999}" EX 300` - 性能提升:缓存命中时响应时间从`100ms`降至`<5ms` [^3] 2. **会话管理(Session Storage)** - 分布式系统共享会话数据,解决水平扩展问题 - 使用Hash结构存储会话:`HSET session:user123 token "abc" last_active 1690000000` --- ### 二、实时数据处理 | 场景 | 数据结构 | 典型案例 | |---------------------|-------------|---------------------------| | 实时排行榜 | Zset | 电商销量榜/游戏积分榜 | | 社交关系 | Set | 共同关注/好友推荐 | | 计数器 | String | 页面PV/UV统计 | **示例代码(实时榜单)**: ```python # 用户得分更新 ZADD game_leaderboard 3500 "user_101" # 获取TOP10 ZREVRANGE game_leaderboard 0 9 WITHSCORES ``` --- ### 三、分布式系统协调 1. **分布式锁** - 确保集群环境资源互斥访问(如秒杀库存扣减) - 原子锁实现: ```lua -- 加锁(引用[4]) SET lock:order_123 UUID EX 30 NX -- 解锁Lua脚本 if redis.call("get",KEYS[1]) == ARGV[1] then return redis.call("del",KEYS[1]) end ``` 2. **服务限流** - 滑动窗口计数器:`INCR rate:api_login:127.0.0.1` + `EXPIRE` --- ### 四、特殊业务场景 1. **地理位置服务(Geo)** - 计算网点距离:`GEODIST stores:shanghai store1 store2 km` 2. **布隆过滤器(Bloom Filter)** - 预防缓存穿透:`BF.ADD blocked_users 10086` 3. **消息队列(Pub/Sub/Stream)** - 订单状态异步通知:`PUBLISH order_status "order_456:paid"` --- ### 五、行业应用案例 - **金融**:实时风控指标计算(使用HyperLogLog统计IP异常访问) - **物流**:运单状态实时追踪(Bitmaps记录节点状态) - **社交**:Feed流推送(List维护用户时间线) [^1][^4] > ⚠️ **关键优化建议**: > - 缓存穿透:空值缓存 + 布隆过滤器 > - 雪崩预防:随机过期时间 + 集群部署 > - 持久化选择:高可用场景需开启 `AOF+RDB` 混合模式 [^1][^3] --- ### 相关问题 1. Redis如何通过Lua脚本保证分布式锁的原子性? 2. 在超高并发场景下,Redis缓存与数据库双写一致性如何解决? 3. Redis集群模式下,事务操作与单机模式有何差异? 4. 如何设计Redis内存淘汰策略应对不同业务场景? [^1]: Redis基础知识与事务案例 [^2]: Java客户端选型指南 [^3]: .NET环境性能优化实践 [^4]: 分布式锁实现原理 [^5]: 云原生部署模式解析
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值