java 与 redis_Redis 安装和Java中使用(一)

本文介绍了Redis的基本概念,如内存数据库、单线程特性、数据持久化和数据结构。详细讲解了Windows环境下Redis的安装与启动,以及如何通过配置文件redis.conf进行设置。此外,还展示了Redis的常用命令,包括连接、键操作以及过期时间管理。最后,给出了Java操作Redis的示例,并提出了使用Redis时应注意的事项,如合理选择数据结构、控制键名长度等。
摘要由CSDN通过智能技术生成

Redis是个内存数据库,同时它是单线程的。

Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。

Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。

Redis支持数据的备份,即master-slave模式的数据备份。

1 windows安装

启动 cmd 窗口 使用cd命令切换目录到 C:\redis 运行 redis-server.exe或者打开安装目录直接点击运行redis-server.exe (使用过程中不要关闭)。

0818b9ca8b590ca3270a3433284dd417.png

另外 启动 一个cmd 窗口 使用cd命令切换目录到 C:\redis 运行 redis-cli.exe -h localhost -p 6379 或者直接点击运行redis-cli.exe文件。

0818b9ca8b590ca3270a3433284dd417.png

2 Redis 配置

Redis 的配置文件位于 Redis 安装目录下,文件名为 redis.conf。

可以通过 config 命令查看或设置配置项。

如获取最大连接数: config get maxclients

0818b9ca8b590ca3270a3433284dd417.png

3 Redis命令

连接本地服务器

$redis-cli

连接远程服务器

$ redis-cli -h host -p port -a password

测试是否连接成功

$ping

4 Java 使用 Redis

import redis.clients.jedis.Jedis;

public class RedisInJava {

public static void main(String[] args) {

//连接本地的 Redis 服务

Jedis jedis = new Jedis("localhost");

//查看服务是否运行

System.out.println("Server is running: "+jedis.ping());

}

}

输出如下结果:

Server is running: PONG

测试连接成功。

5 Redis 键(key)

基本命令:

DEL key 该命令用于在 key 存在时删除 key。

DUMP key 序列化给定 key ,并返回被序列化的值。

EXISTS key 检查给定 key 是否存在。

EXPIRE key seconds为给定 key 设置过期时间。

EXPIREAT key timestamp EXPIREAT 的作用和 EXPIRE 类似,都用于为 key 设置过期时间。 不同在于 EXPIREAT 命令接受的时间参数是 UNIX 时间戳(unix timestamp)。

PEXPIRE key milliseconds 设置 key 的过期时间以毫秒计。

PEXPIREAT key milliseconds-timestamp 设置 key 过期时间的时间戳(unix timestamp) 以毫秒计

KEYS pattern 查找所有符合给定模式( pattern)的 key 。

MOVE key db 将当前数据库的 key 移动到给定的数据库 db 当中。

PERSIST key 移除 key 的过期时间,key 将持久保持。

PTTL key 以毫秒为单位返回 key 的剩余的过期时间。

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

RANDOMKEY 从当前数据库中随机返回一个 key 。

RENAME key newkey 修改 key 的名称

RENAMENX key newkey 仅当 newkey 不存在时,将 key 改名为 newkey 。

TYPE key 返回 key 所储存的值的类型。

Java示例

public class KeyRedisApp {

public static void main(String[] args) {

Jedis jedis = JedisUtil.getInstance().getJedis();

System.out.println("Server is running: "+jedis.ping());

//KEYS pattern

System.out.println("KEYS:"+jedis.keys("*key*"));

//RENAME key newkey

jedis.rename("runoobkey", "runoobkeynew");

System.out.println("RENAME:"+jedis.keys("*key*"));

//TYPE key

System.out.println("KEYS:"+jedis.type("hkey2"));

}

}

6 Redis 注意事项

掌控储存在Redis中的所有键

删除一些不在使用的数据。

控制所有键名的长度

键名在标识数据的同时,注意键名长度。

使用合适的数据结构

1)对于数量较大(成千上百万),建议使用哈希将数据分组存储,因为哈希表效率高,占用内存小。

2) 如果不需要使用set特性时,使用list替代set,因为list使用内存更小,且速度更快。

3)Sorted sets是最昂贵的数据结构,不太建议使用,使用哈希表替换。

4)考虑使用bitmaps或者bitsets,它们允许你在Redis值上执行多个bit-level操作。

使用SCAN时别使用键

SCAN 命令是一个基于游标的迭代器。SCAN 命令每次被调用之后, 都会向用户返回一个新的游标,用户在下次迭代时需要使用这个新游标作为 SCAN 命令的游标参数, 以此来延续之前的迭代过程。同时,使用SCAN,用户还可以使用keyname模式和count选项对命令进行调整。对比KEYS命令,虽然SCAN无法一次性返回所有匹配结果,但是却规避了阻塞系统这个高风险,从而也让一些操作可以放在主节点上执行。

SCAN相关命令还包括SSCAN 命令、HSCAN 命令和 ZSCAN 命令,分别用于集合、哈希键及有续集等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值