我是靠谱客的博主 勤恳香氛,这篇文章主要介绍redis 补充(1)基本命令一、redis常用命令二、string类型相关命令三、redis其他命令四、redis高级命令五、redis配置文件,现在分享给大家,希望可以做个参考。

文章目录

  • 一、redis常用命令
    • 1.1 检测redis是否启动
    • 1.2 远程服务器上执行命令
    • 1.3 避免中文乱码
    • 1.4 序列化key值
    • 1.5 检查给定的key是否存在
    • 1.6 设置key的过期时间
    • 1.7 查找给定模式的key
    • 1.8 使用某个数据库
    • 1.9 将当前key移动到某个数据库
    • 1.10 移除某个key的过期时间
    • 1.11 查看key的剩余过期时间
    • 1.12 查看key的类型
  • 二、string类型相关命令
    • 2.1 同时设置key-value对
    • 2.2 key自增1
    • 2.3 给key加上特定的值
    • 2.4 string类型存储容量
    • 2.5 setnx
  • 三、redis其他命令
    • 3.1 发布订阅模型
    • 3.2 redis中的事务操作
    • 3.3 redis连接命令
    • 3.4 服务器相关命令
  • 四、redis高级命令
    • 4.1 数据备份与恢复
    • 4.2 redis安全
    • 4.3 redis性能测试
    • 4.3 redis客户端链接
    • 4.4 redis管道技术
    • 4.5 redis 分区
    • 4.6 redis多数据库
  • 五、redis配置文件
    • 5.1 建议修改
    • 5.2 关闭命令
    • 5.3 key的有效问题
    • 六、Hash类型有关命令
    • 6.1 hset
    • 6.2 hmset
    • 6.3 HEXISTS
    • 6.4 HGETALL
    • 6.5 HINCRBY
    • 6.6 hkey
    • 6.7 HLEN
    • 6.8 HVALS
    • 6.9 hdel
    • 6.10 del

一、redis常用命令

1.1 检测redis是否启动

复制代码
1
2
3
127.0.0.1:6379> ping PONG

1.2 远程服务器上执行命令

复制代码
1
2
3
ybx@ybx-PC:~$ redis-cli -h 127.0.0.1 -p 6379 -a 12345678 127.0.0.1:6379>

1.3 避免中文乱码

复制代码
1
2
3
ybx@ybx-PC:~$ redis-cli --raw 127.0.0.1:6379>

1.4 序列化key值

复制代码
1
2
3
127.0.0.1:6379> dump a "x00x03qweax00xb2xbex91xdexed7]xed"

1.5 检查给定的key是否存在

复制代码
1
2
3
127.0.0.1:6379> exists a (integer) 1

1.6 设置key的过期时间

复制代码
1
2
3
127.0.0.1:6379> expire a 12 (integer) 1

1.7 查找给定模式的key

复制代码
1
2
3
127.0.0.1:6379> keys * 1) "stu1"

1.8 使用某个数据库

复制代码
1
2
3
127.0.0.1:6379> select 1 OK

1.9 将当前key移动到某个数据库

复制代码
1
2
3
127.0.0.1:6379[1]> move a 0 (integer) 1

1.10 移除某个key的过期时间

复制代码
1
2
3
127.0.0.1:6379> persist a (integer) 1

1.11 查看key的剩余过期时间

  • 以秒为单位
复制代码
1
2
3
127.0.0.1:6379> ttl a (integer) -1
  • 以毫秒为单位
复制代码
1
2
3
4
127.0.0.1:6379> pttl a (integer) -1

1.12 查看key的类型

复制代码
1
2
3
127.0.0.1:6379> type key string

二、string类型相关命令

2.1 同时设置key-value对

复制代码
1
2
3
127.0.0.1:6379> mset key1 value1 key2 value2 OK

2.2 key自增1

复制代码
1
2
3
127.0.0.1:6379> get key "1"

2.3 给key加上特定的值

复制代码
1
2
3
127.0.0.1:6379> incrby key 3 (integer) 4

2.4 string类型存储容量

键最大可存储512m。

2.5 setnx

只有当key值不存在时才会设置成功

三、redis其他命令

3.1 发布订阅模型

  • 订阅某个频道
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
127.0.0.1:6379> subscribe cctv19 Reading messages... (press Ctrl-C to quit) 1) "subscribe" 2) "cctv19" 3) (integer) 1 1) "message" 2) "cctv19" 3) "new-msessage" 1) "message" 2) "cctv19" 3) "new messgae"
  • 向该频道发送消息
复制代码
1
2
3
127.0.0.1:6379> publish cctv19 'new messgae' (integer) 1

3.2 redis中的事务操作

  • multi
    标记一个事务的开始

  • exec
    执行事务块中的所有指令

  • discard
    取消事务块中的所有指令

  • watch
    Watch 命令用于监视一个(或多个) key ,如果在事务执行之前这个(或这些) key 被其他命令所改动,那么事务将被打断

单个 Redis 命令的执行是原子性的,但 Redis 没有在事务上增加任何维持原子性的机制,所以 Redis 事务的执行并不是原子性的。
事务可以理解为一个打包的批量执行脚本,但批量指令并非原子化的操作,中间某条指令的失败不会导致前面已做指令的回滚,也不会造成后续的指令不做。

  • 回滚
    事务中出现报告错误,事务才会取消
    报告错误就是语法错误
复制代码
1
2
3
4
5
6
7
8
9
127.0.0.1:6379> multi OK 127.0.0.1:6379> set new-key 12 QUEUED 127.0.0.1:6379> 12121 (error) ERR unknown command '12121' 127.0.0.1:6379> exec (error) EXECABORT Transaction discarded because of previous errors.
  • watch
    用来监视某一个key,即如果在一个事务中操作这个key,但是在其他事务中修改了这个key,则这个事务就会执行失败。
  • unwatch
    取消对某个key的监视

3.3 redis连接命令

  • ahth password
    输入密码
  • quit
    关闭当前连接
  • select num
    切换到指定数据库

3.4 服务器相关命令

  • bgsave
    异步的将数据保存到磁盘上,会fork一个子进程去做这件事
  • bgwriteaof
    异步执行一个aof文件的重写操作,重写会创建一个当前 AOF 文件的体积优化版本。即使 Bgrewriteaof 执行失败,也不会有任何数据丢失,因为旧的 AOF 文件在 Bgrewriteaof 成功之前不会被修改。
  • 列出所有已连接的客户端
复制代码
1
2
3
127.0.0.1:6379> client list id=2 addr=127.0.0.1:56742 fd=5 name= age=59 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=32768 obl=0 oll=0 omem=0 events=r cmd=client
  • 杀死当前客户端的连接
复制代码
1
2
3
127.0.0.1:6379> client kill 127.0.0.1:56742 OK
  • 获取当前链接的名称
复制代码
1
2
3
127.0.0.1:6379> client getname (nil)
  • redis config set
    Redis Config Set 命令可以动态地调整 Redis 服务器的配置(configuration)而无须重启。

  • dbsize
    Redis Dbsize 命令用于返回当前数据库的 key 的数量。

  • flushall
    Redis Flushall 命令用于清空整个 Redis 服务器的数据(删除所有数据库的所有 key )。

  • role
    Redis Role 命令查看主从实例所属的角色,角色有master, slave, sentinel。

复制代码
1
2
3
4
5
127.0.0.1:6379> role 1) "master" 2) (integer) 0 3) (empty list or set)
  • save
    Redis Save 命令执行一个同步保存操作,将当前 Redis 实例的所有数据快照(snapshot)以 RDB 文件的形式保存到硬盘。

  • sync
    同步主从服务器

四、redis高级命令

4.1 数据备份与恢复

  • save
    该命令将在 redis 安装目录中创建dump.rdb文件。

  • 数据恢复
    如果需要恢复数据,只需将备份文件 (dump.rdb) 移动到 redis 安装目录并启动服务即可。

  • 获取redis目录

复制代码
1
2
3
4
127.0.0.1:6379> config get dir 1) "dir" 2) "/var/lib/redis"
  • Bgsave
    创建 redis 备份文件也可以使用命令 BGSAVE,该命令在后台执行。

4.2 redis安全

  • 查看是否设置了密码
复制代码
1
2
3
4
127.0.0.1:6379> config get requirepass 1) "requirepass" 2) "12345678"
  • 设置密码
复制代码
1
2
3
127.0.0.1:6379> config set requirepass 123456 OK
  • 密码登录
复制代码
1
2
auth 123456

4.3 redis性能测试

Redis 性能测试是通过同时执行多个命令实现的。

1-h指定服务器主机名127.0.0.1
2-p指定服务器端口6379
3-s指定服务器socket
4-c指定并发连接数50
5-n指定请求数10000
6-d以字节的形式指定SET/GET 值的数据大小 2
7-k1=keep alive 0=reconnect1
8-rSET/GET/INCR 使用随机 key, SADD 使用随机值
9-P通过管道传输 请求1
10-q强制退出 redis。仅显示 query/sec 值
11–csv以 CSV 格式输出
12-l生成循环,永久执行测试
13-t仅运行以逗号分隔的测试命令列表。
14-IIdle 模式。仅打开 N 个 idle 连接并等待。
  • 基本命令
复制代码
1
2
redis-benchmark [option] [option value]

注意:该命令是在 redis 的目录下执行的,而不是 redis 客户端的内部指令。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
ybx@ybx-PC:/var/lib$ redis-benchmark -n 10000 -q PING_INLINE: 114942.53 requests per second PING_BULK: 116279.06 requests per second SET: 114942.53 requests per second GET: 114942.53 requests per second INCR: 117647.05 requests per second LPUSH: 114942.53 requests per second RPUSH: 117647.05 requests per second LPOP: 117647.05 requests per second RPOP: 116279.06 requests per second SADD: 117647.05 requests per second SPOP: 117647.05 requests per second LPUSH (needed to benchmark LRANGE): 116279.06 requests per second LRANGE_100 (first 100 elements): 117647.05 requests per second LRANGE_300 (first 300 elements): 116279.06 requests per second LRANGE_500 (first 450 elements): 116279.06 requests per second LRANGE_600 (first 600 elements): 116279.06 requests per second MSET (10 keys): 119047.62 requests per second
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
ybx@ybx-PC:/var/lib$ redis-benchmark -h 127.0.0.1 -p 6379 -t set, get, lpush -n 10000 -q ====== get, lpush -n 10000 -q ====== 100000 requests completed in 0.84 seconds 50 parallel clients 3 bytes payload keep alive: 1 99.92% <= 1 milliseconds 100.00% <= 1 milliseconds 119331.74 requests per second

4.3 redis客户端链接

  • 最大连接数
复制代码
1
2
3
4
127.0.0.1:6379> config get maxclients 1) "maxclients" 2) "10000"
  • 以下实例我们在服务启动时设置最大连接数为 100000:
复制代码
1
2
redis-server --maxclients 100000
1CLIENT LIST返回连接到 redis 服务的客户端列表
2CLIENT SETNAME设置当前连接的名称
3CLIENT GETNAME获取通过 CLIENT SETNAME 命令设置的服务名称
4CLIENT PAUSE挂起客户端连接,指定挂起的时间以毫秒计
5CLIENT KILL关闭客户端连接

4.4 redis管道技术

Redis 管道技术可以在服务端未响应时,客户端可以继续向服务端发送请求,并最终一次性读取所有服务端的响应。

Redis是一种基于客户端-服务端模型以及请求/响应协议的TCP服务。这意味着通常情况下一个请求会遵循以下步骤:
客户端向服务端发送一个查询请求,并监听Socket返回,通常是以阻塞模式,等待服务端响应。
服务端处理命令,并将结果返回给客户端。

4.5 redis 分区

4.6 redis多数据库

  • select num
    选择某个数据库
  • move key db
    将key移动到某个数据库
  • flushdb
    清楚当前数据库所有key
  • flushall
    清楚所有数据库的key

五、redis配置文件

5.1 建议修改

  • 以守护进程的方式运行
  • 注释掉 bind 127.0.0.1
  • 设置密码

5.2 关闭命令

  • kill -9 pid
    不安全,容易造成数据丢失
  • shutdown
    安全,不会造成数据丢失

5.3 key的有效问题

  • 0代表还有0秒过期
  • -1代表永久有效
  • -2代表失效

六、Hash类型有关命令

6.1 hset

设置一对key,value 值,value值也是一个键值对

复制代码
1
2
3
127.0.0.1:6379> hset user1 name ybx (integer) 1

6.2 hmset

是指一个key,多个value值,value值也是一个键值对

复制代码
1
2
3
127.0.0.1:6379> hmset user1 name ybx age 23 OK

6.3 HEXISTS

查看字段是否存在

复制代码
1
2
3
127.0.0.1:6379> hexists user1 name (integer) 1

6.4 HGETALL

获取所有的字段

复制代码
1
2
3
4
5
6
127.0.0.1:6379> hgetall user1 1) "name" 2) "ybx" 3) "age" 4) "23"

6.5 HINCRBY

为字段加上某一个值

复制代码
1
2
3
127.0.0.1:6379> hincrby user1 age 4 (integer) 27

6.6 hkey

获取value中所所有字段

复制代码
1
2
3
4
127.0.0.1:6379> hkeys user1 1) "name" 2) "age"

6.7 HLEN

获取哈希表中字段的数量

复制代码
1
2
3
127.0.0.1:6379> hlen user1 (integer) 2

6.8 HVALS

获取哈希表中所有值

复制代码
1
2
3
4
127.0.0.1:6379> hvals user1 1) "ybx" 2) "27"

6.9 hdel

删除某一个字段

复制代码
1
2
3
127.0.0.1:6379> hlen user1 (integer) 1

6.10 del

可以直接删除hash类型

复制代码
1
2
3
127.0.0.1:6379> del user1 (integer) 1

最后

以上就是勤恳香氛最近收集整理的关于redis 补充(1)基本命令一、redis常用命令二、string类型相关命令三、redis其他命令四、redis高级命令五、redis配置文件的全部内容,更多相关redis内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(66)

评论列表共有 0 条评论

立即
投稿
返回
顶部