redis操作

  • MOVE key db 将当前数据库的 key 移动到给定的数据库 db 当中。 挺有意思的一个方法

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

# key 存在于当前数据库
 
redis> SELECT 0                             # redis默认使用数据库 0,为了清晰起见,这里再显式指定一次。
OK
 
redis> SET song "secret base - Zone"
OK
 
redis> MOVE song 1                          # 将 song 移动到数据库 1
(integer) 1
 
redis> EXISTS song                          # song 已经被移走
(integer) 0
 
redis> SELECT 1                             # 使用数据库 1
OK
 
redis:1> EXISTS song                        # 证实 song 被移到了数据库 1 (注意命令提示符变成了"redis:1",表明正在使用数据库 1)
(integer) 1
 
 
# 当 key 不存在的时候
 
redis:1> EXISTS fake_key
(integer) 0
 
redis:1> MOVE fake_key 0                    # 试图从数据库 1 移动一个不存在的 key 到数据库 0,失败
(integer) 0
 
redis:1> select 0                           # 使用数据库0
OK
 
redis> EXISTS fake_key                      # 证实 fake_key 不存在
(integer) 0
 
 
# 当源数据库和目标数据库有相同的 key 时
 
redis> SELECT 0                             # 使用数据库0
OK
redis> SET favorite_fruit "banana"
OK
 
redis> SELECT 1                             # 使用数据库1
OK
redis:1> SET favorite_fruit "apple"
OK
 
redis:1> SELECT 0                           # 使用数据库0,并试图将 favorite_fruit 移动到数据库 1
OK
 
redis> MOVE favorite_fruit 1                # 因为两个数据库有相同的 key,MOVE 失败
(integer) 0
 
redis> GET favorite_fruit                   # 数据库 0 的 favorite_fruit 没变
"banana"
 
redis> SELECT 1
OK
 
redis:1> GET favorite_fruit                 # 数据库 1 的 favorite_fruit 也是
"apple"
  • Expireat

用于以 UNIX 时间戳(unix timestamp)格式设置 key 的过期时间。key 过期后将不再可用。

redis 127.0.0.1:6379> EXPIREAT w3ckey 1293840000
(integer) 1
EXISTS w3ckey
(integer) 0
  • Setnx

设置成功,返回 1 。 设置失败,返回 0 。

redis> EXISTS job                # job 不存在
(integer) 0

redis> SETNX job "programmer"    # job 设置成功
(integer) 1

redis> SETNX job "code-farmer"   # 尝试覆盖 job ,失败
(integer) 0

redis> GET job                   # 没有被覆盖
"programmer"

用来实现redis锁,Setnx 一个key,使用完删掉。或者给这个key设置一段时间,超时后自动失效,则锁失效。

info memory

used_memory : 由 Redis 分配器分配的内存总量,以字节(byte)为单位。它包含了实际缓存占用的内存和Redis自身运行所占用的内存(如元数据、lua)。它是由Redis使用内存分配器分配的内存,所以这个数据并没有把内存碎片浪费掉的内存给统计进去。

used_memory_human : 以人类可读的格式返回 Redis 分配的内存总量

used_memory_rss : 从操作系统的角度,返回 Redis 已分配的内存总量(俗称常驻集大小)。这个值和 top 、 ps 等命令的输出一致。

used_memory_peak : Redis 的内存消耗峰值(以字节为单位)

used_memory_peak_human : 以人类可读的格式返回 Redis 的内存消耗峰值

used_memory_lua : Lua 引擎所使用的内存大小(以字节为单位)

mem_fragmentation_ratio : used_memory_rss 和 used_memory 之间的比率

mem_allocator : 在编译时指定的, Redis 所使用的内存分配器。可以是 libc 、 jemalloc 或者 tcmalloc 。

转载于:https://my.oschina.net/wuyizhong/blog/1549357

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值