zoukankan      html  css  js  c++  java
  • Redis记录-Redis命令

    Redis命令是用于在Redis服务器上执行一些操作。
    要在Redis服务器上运行命令,需要一个Redis客户端。Redis客户端在Redis包中有提供,这个包在我们前面的安装教程中就有安装过了。

    语法
    以下是Redis客户端的基本语法。

    [yiibai@ubuntu:~]$ redis-cli
    
    Shell

    示例
    以下示例说明了如何启动Redis客户端。

    要启动Redis客户端,请打开终端并键入命令redis-cli。 这将连接到您的本地Redis服务器,现在可以运行任何的Redis命令了。

    [yiibai@ubuntu:~]$redis-cli 
    redis 127.0.0.1:6379> 
    redis 127.0.0.1:6379> PING  
    PONG
    
    Shell

    在上面的示例中,连接到到在本地机器上运行的Redis服务器并执行PING命令,该命令检查服务器是否正在运行。

    在远程服务器上运行命令

    要在Redis远程服务器上运行命令,需要通过客户端redis-cli连接到服务器

    语法

    [yiibai@ubuntu:~]$ redis-cli -h host -p port -a password
    
    Shell

    示例
    以下示例显示如何连接到Redis远程服务器,在主机(host)127.0.0.1,端口(port)6379上运行,并使用密码为 mypass

    [yiibai@ubuntu:~]$ redis-cli -h 127.0.0.1 -p 6379 -a "mypass" 
    redis 127.0.0.1:6379>

    redis 127.0.0.1:6379> PING
    PONG
    Redis键命令用于管理Redis中的键。以下是使用redis键命令的语法。

    Redis键命令

    下表列出了与键相关的一些基本命令。

    编号命令描述
    1 DEL key 此命令删除一个指定键(如果存在)。
    2 DUMP key 此命令返回存储在指定键的值的序列化版本。
    3 EXISTS key 此命令检查键是否存在。
    4 EXPIRE key seconds 设置键在指定时间秒数之后到期/过期。
    5 EXPIREAT key timestamp 设置在指定时间戳之后键到期/过期。这里的时间是Unix时间戳格式。
    6 PEXPIRE key milliseconds 设置键的到期时间(以毫秒为单位)。
    7 PEXPIREAT key milliseconds-timestamp 以Unix时间戳形式来设置键的到期时间(以毫秒为单位)。
    8 KEYS pattern 查找与指定模式匹配的所有键。
    9 MOVE key db 将键移动到另一个数据库。
    10 PERSIST key 删除指定键的过期时间,得永生。
    11 PTTL key 获取键的剩余到期时间。
    12 RANDOMKEY 从Redis返回一个随机的键。
    13 RENAME key newkey 更改键的名称。
    14 PTTL key 获取键到期的剩余时间(以毫秒为单位)。
    15 RENAMENX key newkey 如果新键不存在,重命名键。
    16 TYPE key 返回存储在键中的值的数据类型。

    Redis字符串命令

    下表列出了一些用于在Redis中管理字符串的基本命令。

    编号命令描述说明
    1 SET key value 此命令设置指定键的值。
    2 GET key 获取指定键的值。
    3 GETRANGE key start end 获取存储在键上的字符串的子字符串。
    4 GETSET key value 设置键的字符串值并返回其旧值。
    5 GETBIT key offset 返回在键处存储的字符串值中偏移处的位值。
    6 MGET key1 [key2..] 获取所有给定键的值
    7 SETBIT key offset value 存储在键上的字符串值中设置或清除偏移处的位
    8 SETEX key seconds value 使用键和到期时间来设置值
    9 SETNX key value 设置键的值,仅当键不存在时
    10 SETRANGE key offset value 在指定偏移处开始的键处覆盖字符串的一部分
    11 STRLEN key 获取存储在键中的值的长度
    12 MSET key value [key value …] 为多个键分别设置它们的值
    13 MSETNX key value [key value …] 为多个键分别设置它们的值,仅当键不存在时
    14 PSETEX key milliseconds value 设置键的值和到期时间(以毫秒为单位)
    15 INCR key 将键的整数值增加1
    16 INCRBY key increment 将键的整数值按给定的数值增加
    17 INCRBYFLOAT key increment 将键的浮点值按给定的数值增加
    18 DECR key 将键的整数值减1
    19 DECRBY key decrement 按给定数值减少键的整数值
    20 APPEND key value 将指定值附加到键

    Redis哈希命令

    下表列出了与哈希/散列相关的一些基本命令。

    序号命令说明
    1 HDEL key field2 [field2] 删除一个或多个哈希字段。
    2 HEXISTS key field 判断是否存在散列字段。
    3 HGET key field 获取存储在指定键的哈希字段的值。
    4 HGETALL key 获取存储在指定键的哈希中的所有字段和值
    5 HINCRBY key field increment 将哈希字段的整数值按给定数字增加
    6 HINCRBYFLOAT key field increment 将哈希字段的浮点值按给定数值增加
    7 HKEYS key 获取哈希中的所有字段
    8 HLEN key 获取散列中的字段数量
    9 HMGET key field1 [field2] 获取所有给定哈希字段的值
    10 HMSET key field1 value1 [field2 value2 ] 为多个哈希字段分别设置它们的值
    11 HSET key field value 设置散列字段的字符串值
    12 HSETNX key field value 仅当字段不存在时,才设置散列字段的值
    13 HVALS key 获取哈希中的所有值

    Redis列表命令

    下表列出了与列表相关的一些基本命令。

    序号命令说明
    1 BLPOP key1 [key2 ] timeout 删除并获取列表中的第一个元素,或阻塞,直到有一个元素可用
    2 BRPOP key1 [key2 ] timeout 删除并获取列表中的最后一个元素,或阻塞,直到有一个元素可用
    3 BRPOPLPUSH source destination timeout 从列表中弹出值,将其推送到另一个列表并返回它; 或阻塞,直到一个可用
    4 LINDEX key index 通过其索引从列表获取元素
    5 LINSERT key BEFORE/AFTER pivot value 在列表中的另一个元素之前或之后插入元素
    6 LLEN key 获取列表的长度
    7 LPOP key 删除并获取列表中的第一个元素
    8 LPUSH key value1 [value2] 将一个或多个值添加到列表
    9 LPUSHX key value 仅当列表存在时,才向列表添加值
    10 LRANGE key start stop 从列表中获取一系列元素
    11 LREM key count value 从列表中删除元素
    12 LSET key index value 通过索引在列表中设置元素的值
    13 LTRIM key start stop 修剪列表的指定范围
    14 RPOP key 删除并获取列表中的最后一个元素
    15 RPOPLPUSH source destination 删除列表中的最后一个元素,将其附加到另一个列表并返回
    16 RPUSH key value1 [value2] 将一个或多个值附加到列表
    17 RPUSHX key value 仅当列表存在时才将值附加到列表

    Redis集合命令

    下表列出了与集合相关的一些基本命令。

    序号命令说明
    1 SADD key member1 [member2] 将一个或多个成员添加到集合
    2 SCARD key 获取集合中的成员数
    3 SDIFF key1 [key2] 减去多个集合
    4 SDIFFSTORE destination key1 [key2] 减去多个集并将结果集存储在键中
    5 SINTER key1 [key2] 相交多个集合
    6 SINTERSTORE destination key1 [key2] 交叉多个集合并将结果集存储在键中
    7 SISMEMBER key member 判断确定给定值是否是集合的成员
    8 SMOVE source destination member 将成员从一个集合移动到另一个集合
    9 SPOP key 从集合中删除并返回随机成员
    10 SRANDMEMBER key [count] 从集合中获取一个或多个随机成员
    11 SREM key member1 [member2] 从集合中删除一个或多个成员
    12 SUNION key1 [key2] 添加多个集合
    13 SUNIONSTORE destination key1 [key2] 添加多个集并将结果集存储在键中
    14 SSCAN key cursor [MATCH pattern] [COUNT count] 递增地迭代集合中的元素

    Redis集排序集合命令

    Redis HyperLogLog是一种使用随机化的算法,以少量内存提供集合中唯一元素数量的近似值。

    HyperLogLog 可以接受多个元素作为输入,并给出输入元素的基数估算值:

    • 基数:集合中不同元素的数量。比如 {‘apple’, ‘banana’, ‘cherry’, ‘banana’, ‘apple’} 的基数就是 3 。
    • 估算值:算法给出的基数并不是精确的,可能会比实际稍微多一些或者稍微少一些,但会控制在合理的范围之内。

    HyperLogLog 的优点是,即使输入元素的数量或者体积非常非常大,计算基数所需的空间总是固定的、并且是很小的。

    在 Redis 里面,每个 HyperLogLog 键只需要花费 12 KB 内存,就可以计算接近 2^64 个不同元素的基数。这和计算基数时,元素越多耗费内存就越多的集合形成鲜明对比。

    但是,因为 HyperLogLog 只会根据输入元素来计算基数,而不会储存输入元素本身,所以
    HyperLogLog 不能像集合那样,返回输入的各个元素。

    下表列出了 HyperLogLog 相关的一些基本命令。

    序号命令说明
    1 PFADD key element [element …] 将指定的元素添加到指定的HyperLogLog 中。
    2 PFCOUNT key [key …] 返回给定 HyperLogLog 的基数估算值。
    3 PFMERGE destkey sourcekey [sourcekey …]

    将多个 HyperLogLog 合并为一个 HyperLogLog

    Redis发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。
    Redis 发布订阅(pub/sub)实现了消息系统,发送者(在redis术语中称为发布者)在接收者(订阅者)接收消息时发送消息。传送消息的链路称为信道。

    在Redis中,客户端可以订阅任意数量的信道。

    Redis发布订阅命令

    下表列出了与Redis发布订阅相关的一些基本命令。

    序号命令说明
    1 PSUBSCRIBE pattern [pattern …] 订阅一个或多个符合给定模式的频道。
    2 PUBSUB subcommand [argument [argument …]] 查看订阅与发布系统状态。
    3 PUBLISH channel message 将信息发送到指定的频道。
    4 PUNSUBSCRIBE [pattern [pattern …]] 退订所有给定模式的频道。
    5 SUBSCRIBE channel [channel …] 订阅给定的一个或多个频道的信息。
    6 UNSUBSCRIBE [channel [channel …]] 退订给定的频道。

    Redis事务允许在单个步骤中执行一组命令。以下是事务的两个属性:

    • 事务中的所有命令作为单个隔离操作并按顺序执行。不可以在执行Redis事务的中间向另一个客户端发出的请求。
    • Redis事务也是原子的。原子意味着要么处理所有命令,要么都不处理。

    语法示例

    Redis事务由命令MULTI命令启动,然后需要传递一个应该在事务中执行的命令列表,然后整个事务由EXEC命令执行。

    redis 127.0.0.1:6379> MULTI 
    OK 
    List of commands here 
    redis 127.0.0.1:6379> EXEC
    
    Shell

    示例

    以下示例说明了如何启动和执行Redis事务。

    redis 127.0.0.1:6379> MULTI 
    OK 
    redis 127.0.0.1:6379> SET mykey "redis" 
    QUEUED 
    redis 127.0.0.1:6379> GET mykey 
    QUEUED 
    redis 127.0.0.1:6379> INCR visitors 
    QUEUED 
    redis 127.0.0.1:6379> EXEC  
    1) OK 
    2) "redis" 
    3) (integer) 1
    
    Shell

    Redis事务命令

    下表列出了与Redis事务相关的一些基本命令。

    序号命令说明
    1 DISCARD 丢弃在MULTI之后发出的所有命令
    2 EXEC 执行MULTI后发出的所有命令
    3 MULTI 标记事务块的开始
    4 UNWATCH 取消 WATCH 命令对所有 key 的监视。
    5 WATCH key [key …] 监视给定的键以确定MULTI / EXEC块的执行

    Redis脚本用于使用Lua解释器来执行脚本。从Redis 2.6.0版开始内置到Redis中。使用脚本的命令是EVAL命令。

    语法

    以下是EVAL命令的基本语法。

    redis 127.0.0.1:6379> EVAL script numkeys key [key ...] arg [arg ...]
    
    Shell

    示例

    以下示例说明了Redis脚本的工作原理。

    redis 127.0.0.1:6379> EVAL "return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}" 2 key1 
    key2 first second  
    1) "key1" 
    2) "key2" 
    3) "first" 
    4) "second"
    
    Shell

    Redis事务命令

    下表列出了与Redis脚本相关的一些基本命令。

    序号命令说明
    1 EVAL script numkeys key [key …] arg [arg …] 执行一个Lua脚本。
    2 EVALSHA sha1 numkeys key [key …] arg [arg …] 执行一个Lua脚本。
    3 SCRIPT EXISTS script [script …] 检查脚本缓存中是否存在脚本。
    4 SCRIPT FLUSH 从脚本缓存中删除所有脚本。
    5 SCRIPT KILL 杀死当前正在执行的脚本。
    6 SCRIPT LOAD script 将指定的Lua脚本加载到脚本缓存中。

    Redis中的连接命令基本上是用于管理与Redis服务器的客户端连接。

    示例

    以下示例说明客户端如何向Redis服务器验证自身,并检查服务器是否正在运行。

    redis 127.0.0.1:6379> AUTH "password" 
    OK 
    redis 127.0.0.1:6379> PING 
    PONG
    
    Shell

    Redis连接命令

    下表列出了与Redis连接相关的一些基本命令。

    序号命令说明
    1 AUTH password 使用给定的密码验证服务器
    2 ECHO message 打印给定的字符串信息
    3 PING 检查服务器是否正在运行
    4 QUIT 关闭当前连接
    5 SELECT index 更改当前连接的所选数据库

    Redis服务器命令基本上是用于管理Redis服务器。

    示例

    以下示例说明了如何获取有关服务器的所有统计信息和信息。

    127.0.0.1:6379> info
    # Server
    redis_version:2.8.4
    redis_git_sha1:00000000
    redis_git_dirty:0
    redis_build_id:8f6097d7914679ca
    redis_mode:standalone
    os:Linux 3.19.0-25-generic i686
    arch_bits:32
    multiplexing_api:epoll
    gcc_version:4.8.2
    process_id:1004
    run_id:1e53acea2aa628199c4e438a3ed815d96eebc036
    tcp_port:6379
    uptime_in_seconds:888450
    uptime_in_days:10
    hz:10
    lru_clock:1861984
    config_file:/etc/redis/redis.conf
    
    # Clients
    connected_clients:1
    client_longest_output_list:0
    client_biggest_input_buf:0
    blocked_clients:0
    
    # Memory
    used_memory:424872
    used_memory_human:414.91K
    used_memory_rss:6709248
    used_memory_peak:424464
    used_memory_peak_human:414.52K
    used_memory_lua:22528
    mem_fragmentation_ratio:15.79
    mem_allocator:jemalloc-3.4.1
    
    # Persistence
    loading:0
    rdb_changes_since_last_save:0
    rdb_bgsave_in_progress:0
    rdb_last_save_time:1486607123
    rdb_last_bgsave_status:ok
    rdb_last_bgsave_time_sec:0
    rdb_current_bgsave_time_sec:-1
    aof_enabled:0
    aof_rewrite_in_progress:0
    aof_rewrite_scheduled:0
    aof_last_rewrite_time_sec:-1
    aof_current_rewrite_time_sec:-1
    aof_last_bgrewrite_status:ok
    
    # Stats
    total_connections_received:1
    total_commands_processed:263
    instantaneous_ops_per_sec:0
    rejected_connections:0
    sync_full:0
    sync_partial_ok:0
    sync_partial_err:0
    expired_keys:0
    evicted_keys:0
    keyspace_hits:257
    keyspace_misses:0
    pubsub_channels:0
    pubsub_patterns:0
    latest_fork_usec:4793
    
    # Replication
    role:master
    connected_slaves:0
    master_repl_offset:0
    repl_backlog_active:0
    repl_backlog_size:1048576
    repl_backlog_first_byte_offset:0
    repl_backlog_histlen:0
    
    # CPU
    used_cpu_sys:24.65
    used_cpu_user:15.84
    used_cpu_sys_children:0.08
    used_cpu_user_children:0.00
    
    # Keyspace
    db0:keys=14,expires=0,avg_ttl=0
    db1:keys=1,expires=0,avg_ttl=0
    127.0.0.1:6379>
    
    Shell

    Redis服务器命令

    下表列出了与Redis服务器相关的一些基本命令。

    序号命令说明
    1 BGREWRITEAOF 异步重写仅追加的文件
    2 BGSAVE 将数据集异步保存到磁盘
    3 CLIENT KILL [ip:port] [ID client-id] 杀死或断开指定的客户端的连接
    4 CLIENT LIST 获取到服务器的客户端连接列表
    5 CLIENT GETNAME 获取当前连接的名称
    6 CLIENT PAUSE timeout 在指定时间内停止处理来自客户端的命令
    7 CLIENT SETNAME connection-name 设置当前连接名称
    8 CLUSTER SLOTS 获取群集插槽到节点映射的数组
    9 COMMAND 获取Redis命令详细信息的数组
    10 COMMAND COUNT 获取Redis命令的总数
    11 COMMAND GETKEYS 提取键给出一个完整的Redis的命令
    12 BGSAVE 将数据集异步保存到磁盘
    13 COMMAND INFO command-name [command-name …] 获取特定Redis命令详细信息的数组
    14 CONFIG GET parameter 获取配置参数的值
    15 CONFIG REWRITE 使用内存中配置来重写配置文件
    16 CONFIG SET parameter value 将配置参数设置为给定值
    17 CONFIG RESETSTAT 重置由INFO返回的统计信息
    18 DBSIZE 返回所选数据库中的键数量
    19 DEBUG OBJECT key 获取有关键的调试信息
    20 DEBUG SEGFAULT 使服务器崩溃
    21 FLUSHALL 从所有数据库中删除所有键
    22 FLUSHDB 删除当前数据库中的所有键
    23 INFO [section] 获取有关服务器的信息和统计信息
    24 LASTSAVE 获取上次成功保存到磁盘的UNIX时间戳
    25 MONITOR 监听服务器实时接收的所有请求
    26 ROLE 返回实例在复制上下文中的角色
    27 SAVE 将数据集同步保存到磁盘
    28 SHUTDOWN [NOSAVE] [SAVE] 将数据集同步保存到磁盘,然后关闭服务器
    29 SLAVEOF host port 使服务器成为另一个实例的从属,或将其提升作为主服务器
    30 SLOWLOG subcommand [argument] 管理Redis慢查询日志
    31 SYNC 用于复制的命令
    32 TIME 返回当前服务器的时间



     
  • 相关阅读:
    有关ASP的过程及函数的定义方法及调用
    ASP留言板(在一页里实现所有功能)
    滚动DataGrid
    效果试验
    自己写的身份证号码15位升18位的函数
    [学习笔记]开始学directx了之一
    改写的一个自动生成图片验证码的类asp.net(vb)
    参加了腾讯通RTX客户交流会
    杨伟帆的个人简历
    全国省市县无刷新多级关联菜单
  • 原文地址:https://www.cnblogs.com/xinfang520/p/7723102.html
Copyright © 2011-2022 走看看