通过put(redis_conn, Pid).放到字典里,在另一个函数中使用Pid = get(redis_conn),得不到PId
时间: 2024-04-06 17:32:03 浏览: 29
可能是因为在使用`get(redis_conn)`时,返回的值类型并不是你所期望的`Pid`类型,导致获取不到正确的`Pid`值。建议检查一下以下几个可能的问题:
1. 确保在调用`put(redis_conn, Pid)`时,`Pid`的值是正确的,并且该值已经被成功存储到了redis字典中。
2. 确认在调用`get(redis_conn)`时,`redis_conn`是正确的redis连接对象,并且连接已经成功建立。
3. 确认在调用`get(redis_conn)`时,返回的值的类型是正确的。可以尝试在调用`get(redis_conn)`之后,打印一下返回值的类型,看看是否符合你的预期。如果类型不对,可以尝试使用`str()`等函数将其转换为正确类型。
希望这些提示能够帮助你解决问题!
相关问题
在一个函数中put(redis_conn, Pid),是不是在另一个函数中不能get(redis_conn)
在Redis中,数据的存储和读取是基于键值对的。只要在存储数据时使用了正确的键,就可以在任何时候通过该键获取存储的值。因此,在一个函数中使用`put(redis_conn, Pid)`方法存储数据,在另一个函数中使用`get(redis_conn)`方法读取数据是完全可行的。
需要注意的是,为了确保在不同的函数中能够正确地读取和写入数据,需要使用相同的Redis连接对象。如果在不同的函数中使用了不同的连接对象,可能会导致读取不到正确的值或者写入失败。因此,建议在程序开始时创建一个全局的Redis连接对象,然后在需要读取或写入数据的函数中使用该连接对象进行操作。
另外,如果在读取数据时出现了获取不到值的情况,可能是因为数据并没有被正确存储到Redis中,或者连接对象出现了问题等原因。需要仔细检查程序逻辑和代码实现,以确定问题的具体原因。
redis_conn = get(redis_conn)这个可以获得连接对象?
事实上,这行代码是从 Erlang 的 process 字典中获取之前存储的 Redis 连接对象。
在之前的代码中,我们使用 `put(redis_conn, Pid)` 将 Redis 连接对象存储到了 process 字典中,使用的 key 为 `redis_conn`。而在另一个函数中,我们可以通过 `get(redis_conn)` 来获取之前存储的 Redis 连接对象,然后将其赋值给 `redis_conn` 变量,以便在之后的代码中使用连接对象。
需要注意的是,这里的 `redis_conn` 变量只是一个普通的变量名,与 Redis 连接对象并没有直接的关系,只是用来存储连接对象的变量名。因此,当我们通过 `get(redis_conn)` 获取到连接对象后,需要将其赋值给 `redis_conn` 变量,以便在之后的代码中使用。