使用java代码操作redis

  1. Java访问redis
    2.1 添加依赖

    redis.clients
    jedis
    2.9.0

2.2 Java连接redis
Jedis jedis = new Jedis(ip, port);
jedis.auth(“123456”);//权限认证
jedis.ping();
jedis.select(0);//切换数据库

2.3 Java操作redis
string(字符串)
hash(哈希)
list(列表)
set(集合)
zset(sorted set:有序集合)
zadd/zrevrange

  注1:不需要记得API的方法,只需要查redis命令

2、redis持久化
rdb
aop
问题:
1、redis的数据何时消失
2、何时redis与mysql数据会同步一次
redis默认采取的是rdb持久方式
rdb持久化策略:(性能更好,直接操作内存)
比如说redis存储了1000个key,当其中100key对应的值在60s发生了改变,那么久将redis与
mysql的数据进行同步一次。同步的机制,在redis.confg中进行设置

	aof持久化策略
		redis每改变内存中一条数据,就会将内存与mysql数据同步一次,并且记录日志。安全性更高,
		数据不易丢失
		
	rdb与aof结合使用

3、redis集群(单机多节点集群,多台Linux机器集群)<概念:数据共享>
主从模式
单机多节点集群:表示一台Linux主机,开放多个端口,每个端口代表一个主机
redis集群最少要三台主机(多台机器集群)

通常公司会至少使用6台(主从模式)

在不使用集群时:是将所有静态数据(不怎么改的数据)放到一台Linux主机的内存中。
当数据量过大,一台机器的内存不足。那么会采用多台机器进行分散存储,将多台机器进行集群。



 回顾:
	redis简介(基于内存存储、持久化特点、集群的概念)
	redis的安装
		redis server
		gcc
		通过网址从网上下载redis的Linux版本进行安装
		解压 tat -xvf 。。。。
		进到解压路径 通过make对该目录进行编译
		
		可启动redis(启动后是不可再输入其他Linux命令)
		需要修改redis.conf文件,设置为守护进程。
		
		./src/redis-server redis.conf
		./src/redis-cli 
		如果说左下角出现127.0.0.1,意味着redis安装成功
		
		
		redis cli
			redisdesktopmanager安装
			装上了之后redis客户不能直接连接Linux上的redis
			1、#bind 127.0.0.1
			2、设置访问权限(123456)
			3、开放防火墙端口
			
	redis存取值的五种形式
		string、hash、list、set、zset
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是使用Java代码实现Redis多租户逻辑隔离的示例: 首先,我们需要使用Jedis连接Redis服务器。在连接时,我们可以使用带有密码和端口号的Jedis连接: ``` String redisHost = "localhost"; int redisPort = 6379; String redisPassword = "your_password"; Jedis jedis = new Jedis(redisHost, redisPort); jedis.auth(redisPassword); ``` 接下来,我们需要在Redis中为每个租户创建一个单独的数据。在Redis中,我们可以使用SELECT命令来选择要使用的数据。因此,我们可以为每个租户使用不同的数据编号。例如,我们可以为租户“tenant1”使用数据0,为租户“tenant2”使用数据1,以此类推。 ``` String tenant = "tenant1"; int dbIndex = 0; jedis.select(dbIndex); ``` 现在,我们已经成功在Redis中为租户“tenant1”创建了一个单独的数据。接下来,我们可以执行任何适用于该租户的操作。 最后,我们需要确保在执行完所有操作后,将Redis连接释放回连接池。这可以通过在finally块中调用jedis.close()来完成。 完整的示例代码如下: ``` import redis.clients.jedis.Jedis; public class RedisMultiTenancyExample { public void execute(String tenant) { String redisHost = "localhost"; int redisPort = 6379; String redisPassword = "your_password"; try (Jedis jedis = new Jedis(redisHost, redisPort)) { jedis.auth(redisPassword); int dbIndex = getDatabaseIndexForTenant(tenant); jedis.select(dbIndex); // Perform any operations specific to the tenant jedis.set("key", "value"); } catch (Exception e) { e.printStackTrace(); } } private int getDatabaseIndexForTenant(String tenant) { // Calculate the database index based on the tenant // For example, we can use a hash function to generate a unique index for each tenant return Math.abs(tenant.hashCode() % 16); } } ``` 使用示例: ``` RedisMultiTenancyExample example = new RedisMultiTenancyExample(); example.execute("tenant1"); ``` 希望这可以帮助你实现Redis多租户逻辑隔离!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值