iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >redis使用指南(一)
  • 517
分享到

redis使用指南(一)

2024-04-02 19:04:59 517人浏览 安东尼
摘要

redis使用指南一、Redis简介 Redis展开来看就是remote directory server。redis是开源的,基于内存的数据结构存储,可以作为数据库,缓存系统或者消息队列。它支持

redis使用指南

redis使用指南(一)

一、Redis简介

 Redis展开来看就是remote directory server。redis是开源的,基于内存的数据结构存储,可以作为数据库缓存系统或者消息队列。它支持数据结构有字符串、列表(数组)、hashes(关联数组)、集合、有序集合、bitmaps(位图)、hyperloglogs、空间索引,十分的强大。redis有内建的复制功能,支持lua脚本,LRU算法事务,持久存储并且支持高可用(sentinel,redis cluster)。以下是redis的特点总结

redis使用指南(一)

二、Redis安装

 由于redis功能十分的强大,应用十分的广泛,目前已经被收录到了epel仓库,因此我们只需要将yum仓库指向epel仓库即可。因此这里安装十分的简单,直接yum install -y redis。注意我这里安装的是redis3.2版本,目前官方最新版本为redis4。下载安装方式十分简单。如有想法,请戳网址

    https://redis.io/download

三、配置文件详解

 通常rpm安装的软件包,我们可以通过如下命令查看程序相关的配置文件

[root@Mysql ~]# rpm -ql redis
/etc/logrotate.d/redis
/etc/redis-sentinel.conf                             #监控(哨兵)配置文件
/etc/redis.conf                             #主配置文件
/etc/systemd/system/redis-sentinel.service.d
/etc/systemd/system/redis-sentinel.service.d/limit.conf
/etc/systemd/system/redis.service.d
/etc/systemd/system/redis.service.d/limit.conf
/usr/bin/redis-benchmark
/usr/bin/redis-check-aof
/usr/bin/redis-check-rdb
/usr/bin/redis-cli                              #redis客户端程序
/usr/bin/redis-sentinel
/usr/bin/redis-server                              #redis服务端程序
/usr/bin/redis-shutdown
/usr/lib/systemd/system/redis-sentinel.service
/usr/lib/systemd/system/redis.service
/usr/lib/tmpfiles.d/redis.conf
/usr/share/doc/redis-3.2.3
/usr/share/doc/redis-3.2.3/00-RELEASENOTES
/usr/share/doc/redis-3.2.3/BUGS
/usr/share/doc/redis-3.2.3/CONTRIBUTING
/usr/share/doc/redis-3.2.3/MANIFESTO
/usr/share/doc/redis-3.2.3/README.md
/usr/share/licenses/redis-3.2.3
/usr/share/licenses/redis-3.2.3/COPYING
/var/lib/redis
/var/log/redis                               #redis日志文件目录
/var/run/redis
[root@mysql ~]# grep '^##' /etc/redis.conf 
################################## INCLUDES ###################################
################################## NETWORK #####################################
################################# GENERAL #####################################
################################ SNAPSHOTTING  ################################
################################# REPLICATION #################################
################################## SECURITY ###################################
################################### LIMITS ####################################
############################## APPEND ONLY MODE ###############################
################################ LUA SCRIPTING  ###############################
################################ REDIS CLUSTER  ###############################
################################## SLOW LOG ###################################
################################ LATENCY MONITOR ##############################
############################# EVENT NOTIFICATION ##############################
############################### ADVANCED CONFIG ###############################

 grep以下可以查看redis主配置文件有哪些配置段。

 使用以下命令还可以查看主配置文件中已经开启了哪些服务。

[root@mysql2 ~]# cat /etc/redis.conf | grep -v '#' | sed '/^$/d' 
bind 0.0.0.0
protected-mode no
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize no
supervised no
pidfile /var/run/redis/redis.pid
loglevel notice
logfile /var/log/redis/redis.log
databases 16
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir /var/lib/redis
slave-serve-stale-data yes
slave-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
slave-priority 100
appendonly no
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
lua-time-limit 5000
 cluster-enabled yes
 cluster-config-file nodes-6379.conf
 cluster-node-timeout 15000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
activerehashing yes
client-output-buffer-limit nORMal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
aof-rewrite-incremental-fsync yes

 接下来分析主配置文件/etc/redis.conf各个配置段的内容

 3.1、INCLUDES配置段

  如果你有更好的配置模板,请放在这个配置段

# include /path/to/local.conf
# include /path/to/other.conf

 3.2、网络配置段

  网络配置项:

bind 127.0.0.1
#允许连接redis的客户端IP

protected-mode no
#安全模式

port 6379
#端口

tcp-backlog 511
#后援队列

timeout 0
#客户端闲置时,关闭客户端连接的超时时长,0表示不关闭

tcp-keepalive 300
#长连接超时时长
  1. 3.3、通用配置段

############################### GENERAL  #####################################
daemonize no
#默认情况下redis不以守护进程的模式运行

supervised no
#是否开启超级监管 

pidfile /var/run/redis/redis.pid
pid文件路径

loglevel notice
#日志级别
 
logfile /var/log/redis/redis.log
#指定日志文件路径
 
databases 16
#设定数据库的数量

 3.4、快照配置段

  RDB(将内存中的数据刷写到磁盘),RDB对内存做快照,不停地快照导出数据,缺点:容易丢失数据

save 900 1 
#900秒有一个键值改变做一次快照

save 300 10
#300秒有10个键值改变做一次快照

save 60 10000 
#60秒有10000键值改变就做一次快照

stop-writes-on-bgsave-error yes
#默认情况下,如果在RDB snapshots持久化过程中出现问题,设置该参数后,Redis是不允许用户进行任何更新操作

rdbcompression yes
#在导出.RDB数据库文件的时候采用LZF压缩字符串和对象。想节省一些CPU资源可以设置为no,但数据量可能会很大。
 
rdbchecksum yes
#RDB快照制作过程中会在文件的末尾写入crc64的校验值。这样可能很好的保证数据的正确性。
代价是导致性能下降

dbfilename dump.rdb
#快照文件名
 
dir ./
#快照路径

 3.5、主从配置相关段  

  主从配置相关的配置项,一个Master可以有多个slave主机,支持链式复制;Master以非阻塞方式同步数据至slave主机。

slaveof <masterip> <masterport>
#用于创建从服务器

# masterauth <master-passWord>
#主服务器认证密码

slave-serve-stale-data yes
#当slave丢失与master端的连接,或者复制仍在处理,那么slave会有下列两种表现:
   yes表示,slave继续响应客户端的请求,尽管数据已经不同了。
   no表示slave会返回"SYNC with master in progreee"的错误信息;

slave-read-only yes
#从服务器只读

repl-diskless-sync no    
新的从节点或某较长时间未能与主节点进行同步的从节点重新与主节点通信,需要做“full synchronization",此时其同步方式有两种style:
    Disk-backend:主节点新创建快照文件于磁盘中,而后将其发送给从节点;
    Diskless:主节占新创建快照后直接通过网络套接字文件发送给从节点;为了实现并行复制,通常需要在复制启动前延迟一个时间段;
  
repl-diskless-sync-delay 5
#基于网络套接字同步延迟时长

repl-ping-slave-period 10
#ping从服务器的时间间隔

# repl-timeout 60
#主从复制超时时长

repl-disable-tcp-nodelay no
#默认为no,当选择yes的时候, master会向slave发送少量的tcp packets,这样的一个负面影响 delay slave接受数据时间,40 milliseconds 的延迟,在 高流量或者 master slave之间中间节点数很多的情况下,建议变为 yes

# repl-backlog-size 1mb
#后援队了的最大内存

# repl-backlog-ttl 3600
#后援队列的ttl时长

slave-priority 100
#当master服务挂了后,优先级越低的slave,越有可能成为master候选人

# min-slaves-to-write 3        
#最少从节点在线时,主节点允许写数据

# min-slaves-max-lag 10        
#从节点最多落后主节点多长时间

# slave-announce-ip 5.5.5.5     
#对外宣称服务器的IP

# slave-announce-port 1234     
#对外宣称服务器的端口

 3.6、安全相关配置段

#安全相关的
 
# requirepass foobared
#是否设置密码,requirepass +密码
 
#rename-command CONFIG ""
#重命名或禁用某些命令

 3.7、limit配置段

# maxclients 10000
#客户端并发数量
 
# maxmemory <bytes>
#内存限制,过期会删除key

# maxclients 10000
 最大并发连接数
 
# maxmemory <bytes> 
最大可提供内存

# maxmemory-policy noeviction
 内存淘汰策略
# volatile-lru -> remove the key with an expire set using an LRU alGorithm 
        基于LRU算法将过期时间的键做淘汰
# allkeys-lru -> remove any key according to the LRU algorithm
        基于LRU算法将所有键淘汰 
# volatile-random -> remove a random key with an expire set 
        随机淘汰
# allkeys-random -> remove a random key, any key
        对所有键做随机淘汰
# volatile-ttl -> remove the key with the nearest expire time (minor TTL)
        基于TTL时长淘汰
# noeviction -> don't expire at all, just return an error on write operations 
        从不淘汰,一旦内存耗尽,报错
默认是:# maxmemory-policy noeviction
推荐volatile-lru,volatile-ttl 
如何判断内存的淘汰?-->定量采样
    # maxmemory-samples 5

 3.8、AOF模式配置段

  AOF,即 APPEND ONLY MODE,意思仅追加文件。rdis内存中的数据默认是异步同步到磁盘的,如果发生宕机,会造成一些数据的丢失。AOF也是数据持久化的一种方式,可以提高数据的可靠性。AOF模式会记录每次写操作至指定的文件尾部实现存储持久化;当redis重启时,可通过重新执行文件中的命令在内存中重建出数据库。默认使用fsync() 刷写磁盘数据,发生断电,或者Redis出现内部错误的时候最多丢失1秒数据。AOF和RDB这两种持久化方式可以同时开启不会发生冲突,开始AOF模式的话,Redis会把每次写入的数据在接收后都写入 appendonly.aof 文件。每次启动时Redis都会把这个文件的数据读入内存里。

appendonly no
#是否记录持久化日志

appendfilename "appendonly.aof"
#AOF 文件

appendfsync everysec
#每秒写一次
#fsync() 请求操作系统马上把数据写到磁盘上
redis支持以下三种模式
    no:redis不执行主动同步操作,而是OS进行;
    everysec:每秒一次;
    always:每语句一次,慢,但是安全;
    
no-appendfsync-on-rewrite no
#是否在后台执行aof重写期间不调用fsync,默认为no,表示调用;

auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
#上述两个条件同时满足时,方会触发重写AOF;与上次aof文件大小相比,其增长量超过100%,且大小不少于64MB就会重写AOF; 

aof-load-truncated yes
# redis在启动的时候可以加载被截断的AOF文件,默认启用;否则可能启动失败
注意:持久机制本身不能取代备份;应该制订备份策略,对redis库定期备份;

 3.9、LUA脚本配置段

lua-time-limit 5000
#lua脚本执行时间限制

 3.10、redis集群配置段

cluster-enabled yes
#是否开启集群

cluster-config-file nodes-6379.conf
#集群配置文件

cluster-node-timeout 15000
#集群节点通信超时时长

 3.11、慢启动日志配置段

  慢启动日志用于记录超过指定时间的查询,但需要注意的是:运行时间不包括各种I/O时间。

例如:连接客户端,发送响应数据等。

slowlog-log-slower-than 10000
slowlog-max-len 128
#慢查询日志长度,这个长度没有限制,单位为微妙,只要有足够的内存就行可以通过 SLOWLOG RESET 来释放内存

 3.12、延迟监控配置段

latency-monitor-threshold 0

 3.13、事件通知配置段

notify-keyspace-events ""

 3.14、redis高级配置段

  配置redis的高级选项

 
hash-max-ziplist-entries 512
#每一个对应的hash能存储的最大entries

hash-max-ziplist-value 64
#每一个对应的hash能存储的最大value
#当有大量数据时,适合用哈希编码但需要更多的内存,元素数量上限不能超过给定限制。
 
list-max-ziplist-entries 512
list-max-ziplist-value 64
#与哈希相类似,list数据元素较少的情况下,可以用另一种方式来编码从而节省大量空间。
 
set-max-intset-entries 512
#set 编码形式为是64位无符号整型数字构成的字符串。该参数来限制这种情况下使用这种编码的最大上限的。
 
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
#和 hashes,lists 相似,为了节约空间 sorted sets 也使用特殊的编码方式。这种编码只适合长度和元素都符合上面限制的有序序列。
 
hll-sparse-max-bytes 3000
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
aof-rewrite-incremental-fsync yes
#当子进程重写AOF文件,以下选项开启时,AOF文件会每产生32M数据同步一次,这有利于避免写入磁盘延迟。

四、redis用法简介

 4.1、redis命令选项

  使用redis-cli -h命令可以查看redis客户端命令的用法。选项用法其实很简单,搞定英语应该不在话下。

[root@mysql ~]# redis-cli -h
redis-cli 3.2.3
Usage: redis-cli [OPTIONS] [cmd [arg [arg ...]]]
  -h <hostname>      Server hostname (default: 127.0.0.1).  
  -p <port>          Server port (default: 6379).
  -s <Socket>        Server socket (overrides hostname and port).
  -a <password>      Password to use when connecting to the server.
  -r <repeat>        Execute specified command N times.
  -i <interval>      When -r is used, waits <interval> seconds per command.
                     It is possible to specify sub-second times like -i 0.1.
  -n <db>            Database number.
  -x                 Read last argument from STDIN.
  -d <delimiter>     Multi-bulk delimiter in for raw formatting (default: \n).
  -c                 Enable cluster mode (follow -ASK and -MOVED redirections).
  --raw              Use raw formatting for replies (default when STDOUT is
                     not a tty).
  --no-raw           Force formatted output even when STDOUT is not a tty.
  --csv              Output in CSV format.
  --stat             Print rolling stats about server: mem, clients, ...
  --latency          Enter a special mode continuously sampling latency.
  --latency-history  Like --latency but tracking latency changes over time.
                     Default time interval is 15 sec. Change it using -i.
  --latency-dist     Shows latency as a spectrum, requires xterm 256 colors.
                     Default time interval is 1 sec. Change it using -i.
  --lru-test <keys>  Simulate a cache workload with an 80-20 distribution.
  --slave            Simulate a slave showing commands received from the master.
  --rdb <filename>   Transfer an RDB dump from remote server to local file.
  --pipe             Transfer raw Redis protocol from stdin to server.
  --pipe-timeout <n> In --pipe mode, abort with error if after sending all data.
                     no reply is received within <n> seconds.
                     Default timeout: 30. Use 0 to wait forever.
  --bigkeys          Sample Redis keys looking for big keys.
  --scan             List all keys using the SCAN command.
  --pattern <pat>    Useful with --scan to specify a SCAN pattern.
  --intrinsic-latency <sec> Run a test to measure intrinsic system latency.
                     The test will run for the specified amount of seconds.
  --eval <file>      Send an EVAL command using the Lua script at <file>.
  --ldb              Used with --eval enable the Redis Lua debugger.
  --ldb-sync-mode    Like --ldb but uses the synchronous Lua debugger, in
                     this mode the server is blocked and script changes are
                     are not rolled back from the server memory.
  --help             Output this help and exit.
  --version          Output version and exit.
  Examples:
  cat /etc/passwd | redis-cli -x set mypasswd
  redis-cli get mypasswd
  redis-cli -r 100 lpush mylist x
  redis-cli -r 100 -i 1 info | grep used_memory_human:
  redis-cli --eval myscript.lua key1 key2 , arg1 arg2 arg3
  redis-cli --scan --pattern '*:12345*'

 一些简单命令的操作

    连接redis服务端

[root@mysql ~]# redis-cli     
127.0.0.1:6379>

    选择第1数据库        

127.0.0.1:6379> select 1    
OK

    选择第15个数据库

127.0.0.1:6379[1]> select 15   
OK
127.0.0.1:6379[15]>

    选择第17个库,报错,redis默认16个库

127.0.0.1:6379[15]> select 17
(error) ERR invalid DB index

    选择默认库

127.0.0.1:6379[15]> select 0 
OK

    使用帮助,查看transaction的使用,当然你按下tab键就可以查看其他的命令的使用

127.0.0.1:6379> help @transactions
  DISCARD -
  summary: Discard all commands issued after MULTI
  since: 2.0.0
  EXEC -
  summary: Execute all commands issued after MULTI
  since: 1.2.0
  MULTI -
  summary: Mark the start of a transaction block
  since: 1.2.0
  UNWATCH -
  summary: Forget about all watched keys
  since: 2.2.0
  WATCH key [key ...]
  summary: Watch the given keys to determine execution of the MULTI/EXEC block
  since: 2.2.0

    按下tab可切换查看不同的选项

127.0.0.1:6379> help @

    输入命令时会自动提示输入后面的内容,相当的方便

127.0.0.1:6379> set key value [EX seconds] [PX milliseconds] [NX|XX]

 4.2、redis数据类型 

 1.string 字符串

    redis String是最常用的一种数据类型,普通的key/value存储都可以归为此类;

foo->bar 键值关系

#查看string字符串相关操作命令
help @string 

#设置键值
127.0.0.1:6379> SET tesTKEy 'tom'
OK

#获取键值
127.0.0.1:6379> get testkey
"tom"

#追加键值,往后补值
127.0.0.1:6379> append testkey ' neo'
(integer) 9

#删除键
127.0.0.1:6379> del testkey
(integer) 1

#获取键
127.0.0.1:6379> get testkey
(nil)

#设定多个键值
127.0.0.1:6379> mset name 'tom' age 12
OK

#获取多个键值
127.0.0.1:6379> mget name age
1) "tom"
2) "12"

#设置数值1
27.0.0.1:6379> set counts 1 
OK

#获取数值
127.0.0.1:6379> get counts 
"1"

#减一操作
127.0.0.1:6379> decr counts
(integer) 0
127.0.0.1:6379> get counts
"0"

#加一操作
127.0.0.1:6379> incr counts
(integer) 1
127.0.0.1:6379> incr counts
(integer) 2

#获取数值
127.0.0.1:6379> get counts
"2"

 2.list 列表

    redis list 类型其实就是每个子元素都是 string 类型的双向链表,这就意味着即使你有成千上万中元素在list中,添加一个新元素到list开头或者结尾的操作算法时间复杂度都是O(1)。

#查看list列表相关操作命令
help @list

l:left
r:right
#在列表中追加一个值
127.0.0.1:6379> lpush mylist 'monday'
(integer) 1

#按索引查看列表中的元素,查看[0]号元素,即第一个元素
127.0.0.1:6379> lindex mylist 0
"monday"

#在列表中追加一个值
127.0.0.1:6379> lpush mylist 'sunday'
(integer) 2

#按索引查看列表中的元素
127.0.0.1:6379> lindex mylist 0
"sunday"

#按索引查看列表中的元素,查看第二个元素
127.0.0.1:6379> lindex mylist 1
"monday"

#从列表右边追加一个值
127.0.0.1:6379> rpush mylist 'tuesday'
(integer) 3

127.0.0.1:6379> lindex mylist 2
"tuesday"

#从列表右边删除一个值
127.0.0.1:6379> rpop mylist
"Tuesday"

127.0.0.1:6379> lindex mylist 2 
(nil)

#获取列表的长度
127.0.0.1:6379> llen mylist
(integer) 2

127.0.0.1:6379> lpop mylist
"sunday"

127.0.0.1:6379> llen mylist
(integer) 1

 3. hash

    redis hash是一个string类型的field和value的映射表.

#查看hash类型相关操作命令
help @hash

#设定hash键值为stu1,字段id,值为1
127.0.0.1:6379> hset stu1 id 1 
(integer) 1

#设定另一个hash数据
127.0.0.1:6379> hset stu1 name 'tom'
(integer) 1

127.0.0.1:6379> hset stu1 age 12
(integer) 1

#获取hash字段中所有的值
127.0.0.1:6379> hmget stu1 id name age 
1) "1"
2) "tom"
3) "12"

#获取hash中所有的值
127.0.0.1:6379> hvals stu1
1) "1"
2) "tom"
3) "12"

#获取hash中所有的字段
127.0.0.1:6379> hkeys stu1
1) "id"
2) "name"
3) "age"

#获取hash中所有字段及对应的值
127.0.0.1:6379> hgetall stu1
1) "id"
2) "1"
3) "name"
4) "tom"
5) "age"
6) "12"

 4 set 集合

    redis的set是string类型的无序集合。

#查看set数据类型相关的操作命令
127.0.0.1:6379> help @set

#在students集合中添加多个成员
127.0.0.1:6379> sadd students 'tom' 'jerry' 'lili'
(integer) 3

#在teachers集合中添加多个成员
127.0.0.1:6379> sadd teachers 'sam' 'jerry'
(integer) 2

#将 students集合中的‘lili’移到teachers集合
127.0.0.1:6379> smove students teachers 'lili'
(integer) 1

#获取集合中所有的成员
127.0.0.1:6379> smembers students
1) "tom"
2) "jerry"


127.0.0.1:6379> smembers teachers
1) "lili"
2) "sam"
3) "jerry"

#获取两个集合的交集
127.0.0.1:6379> sinter students teachers 
1) "jerry"

#获取两个集合的并集
127.0.0.1:6379> suNIOn students teachers
1) "lili"
2) "tom"
3) "sam"
4) "jerry"

#students集合中有那些成员teachers集合不存在
127.0.0.1:6379> sdiff students teachers 
1) "tom"

#和上面相反
127.0.0.1:6379> sdiff teachers students
1) "lili"
2) "sam"

#随机删除集合中的一个成员
127.0.0.1:6379> spop students 1 
1) "tom"

#删除一个成员
127.0.0.1:6379> srem students 'tom'
(integer) 0

 5 sorted set 有序集合

    redis的sorted set是string类型的有序集合。

#获取有序集合数据类型相关的操作命令用法
127.0.0.1:6379> help @sorted_set

#有序添加stus集合的成员
127.0.0.1:6379> zadd stus 1 'tom' 2 'jerry' 3 'lucy' 
(integer) 3

#有序添加teas集合的成员
127.0.0.1:6379> zadd teas 1 'sam' 2 'jerry' 3 'lili'
(integer) 3

#获取有序集合成员的个数
127.0.0.1:6379> zcard teas
(integer) 3

#同上
127.0.0.1:6379> ZCARD stus
(integer) 3

 #获取索引
127.0.0.1:6379> zrank teas jerry  
(integer) 1

#通过索引获取值
127.0.0.1:6379> zrange stus 1 2 
1) "jerry"
2) "lucy"

#通过分数获取有序集合中的对应的值
127.0.0.1:6379> ZRANGEBYSCORE stus 1 2 
1) "tom"
2) "jerry"

#添加一个有序集合
127.0.0.1:6379> ZADD ecscores 67 'tom' 33 'lili' 89 'michael' 55 'sam'
(integer) 4

#通过分数获取有序集合中的对应的值
127.0.0.1:6379> ZRANGEBYSCORE ecscores 44 90
1) "sam"
2) "tom"
3) "michael"

 4.3、redis客户端/服务端命令使用

 client端命令

#获取客户端名字,默认为空
127.0.0.1:6379> CLIENT GETNAME  
(nil)

#设置客户端名字
127.0.0.1:6379> CLIENT SETNAME 'mysql'
OK

#设置客户端名字
127.0.0.1:6379> CLIENT GETNAME
"mysql"

#列出客户端
127.0.0.1:6379> CLIENT list 
id=6 addr=127.0.0.1:55374 fd=5 name= age=1619 idle=1619 flags=N db=0 sub=0 psub=0 multi
id=7 addr=127.0.0.1:55376 fd=6 name=mysql age=579 idle=0 flags=N db=0 sub=0 psub=0 mul

#暂停客户端
127.0.0.1:6379> CLIENT PAUSE

#杀死客户端
127.0.0.1:6379> CLIENT KILL

#客户端是否响应
127.0.0.1:6379> CLIENT REPLY

 server端命令

#获取服务端详实信息,info命令很重要,几乎可以查看各种各样的详尽的信息
127.0.0.1:6379> info 
# Server 服务端信息
redis_version:3.2.3
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:672aed6eb816ad6c
redis_mode:standalone
os:linux 3.10.0-514.el7.x86_64 x86_64
arch_bits:64
multiplexing_api:epoll
GCc_version:4.8.5
process_id:9087
run_id:4788b467cdf1f8055eca00ef6bbe57b55ef20bde
tcp_port:6379
uptime_in_seconds:12596
uptime_in_days:0
hz:10
lru_clock:6928199
executable:/usr/bin/redis-server
config_
# Clients 客户端信息 
connected_clients:2
client_longest_output_list:0
client_biggest_input_buf:0
blocked_clients:0
# Memory 内存信息
used_memory:834424
used_memory_human:814.87K
used_memory_rss:6094848
used_memory_rss_human:5.81M
used_memory_peak:834424
used_memory_peak_human:814.87K
total_system_memory:1023938560      #总共内存
total_system_memory_human:976.50M
used_memory_lua:37888
used_memory_lua_human:37.00K
maxmemory:0                           #内存无限制
maxmemory_human:0B
maxmemory_policy:noeviction
mem_fragmentation_ratio:7.30
mem_allocator:jemalloc-3.6.0
# Persistence  持久化相关信息 
loading:0
rdb_changes_since_last_save:0
rdb_bgsave_in_progress:0
rdb_last_save_time:1500090506
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
aof_last_write_status:ok
# Stats 统计数据信息,很重要     
total_connections_received:6    
total_commands_processed:82
instantaneous_ops_per_sec:0
total_net_input_bytes:3065
total_net_output_bytes:35815120
instantaneous_input_kbps:0.00
instantaneous_output_kbps:0.00
rejected_connections:0
sync_full:0
sync_partial_ok:0
sync_partial_err:0
expired_keys:0
evicted_keys:0
keyspace_hits:42
keyspace_misses:1
pubsub_channels:0
pubsub_patterns:0
latest_fork_usec:852
migrate_cached_sockets:0
# 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:8.24 内核空间
used_cpu_user:4.10 用户空间
used_cpu_sys_children:0.01
used_cpu_user_children:0.00
# Cluster信息
cluster_enabled:0
# Keyspace     
db0:keys=10,expires=0,avg_ttl=0 键 过期时长 ttl
127.0.0.1:6379> info memory
# Memory 内存信息

#单独显示CPU信息
127.0.0.1:6379> info CPU
# CPU
used_cpu_sys:8.56
used_cpu_user:4.16
used_cpu_sys_children:0.01
used_cpu_user_children:0.0

#关机命令
127.0.0.1:6379> SHUTDOWN [NOSAVE|SAVE]

#confi命令 配置服务器属性
127.0.0.1:6379> CONFIG SET
127.0.0.1:6379> CONFIG GET 
127.0.0.1:6379> CONFIG REWRITE 
127.0.0.1:6379> CONFIG RESETSTAT

 redis的使用暂且先介绍到这里,下次我们再介绍redis的应用。



您可能感兴趣的文档:

--结束END--

本文标题: redis使用指南(一)

本文链接: https://www.lsjlt.com/news/39258.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • redis使用指南(一)
    redis使用指南一、Redis简介 redis展开来看就是remote directory server。redis是开源的,基于内存的数据结构存储,可以作为数据库,缓存系统或者消息队列。它支持...
    99+
    2022-10-18
  • Redis - Python 客户端基本使用指南
    概述 参考:python 模块Redis模块,连接Redis数据库 Python 中的 Redis 客户端库允许开发者与 Redis 数据库进行交互。这些库允许在 Python 中连接到 Redis、...
    99+
    2023-10-27
    python 数据库 1024程序员节 redis
  • Python redis模块的使用教程指南
    目录1.安装模块2.连接池3.Redis 基本命令 String4.redis 基本命令 hash5.redis基本命令 list6.redis基本命令 set7.其他常用操作8.管道1.安装模块 python 要使用 ...
    99+
    2022-10-21
  • Python redis模块的使用教程指南
    目录1.安装模块2.连接池3.redis 基本命令 String4.redis 基本命令 hash5.redis基本命令 list6.redis基本命令 set7.其他常用操作8.管...
    99+
    2022-11-11
  • Redis Stat的安装指南
    redis-stat是一个用ruby写成的监控redis的程序,基于info命令获取信息,而不是通过monitor获取信息 一、安装ruby yum install -y ruby ruby-deve...
    99+
    2022-06-04
    指南 Redis Stat
  • 详解Redis瘦身指南
    目录Redis内存回收问题原由持久键废弃过期键未回收遍历清除垃圾键如何遍历键如何判断键是否垃圾获取键大小管道加速脚本实现从根源避免问题小结Redis内存回收 Redis 服务器的最大...
    99+
    2022-11-12
  • 阿里云ECS上使用Redis的详细指南
    随着互联网技术的发展,大数据的处理和存储需求日益增加。在这个过程中,Redis作为一种高性能的内存数据库被广泛应用。本文将详细介绍如何在阿里云ECS上使用Redis。 一、阿里云ECS简介阿里云ECS( Elastic ComputeSer...
    99+
    2023-11-19
    阿里 指南 详细
  • 缓存 | Redis 缓存避坑指南
    作者:马功伟 青云科技软件开发工程师 目前从事青云数据库管理平台开发工作,一直从事 Server 端开发工作。 高并发业务场景下,常使用缓存技术缓解数据库压力,可极大的提升用户体验和系统稳定性。由于 Redis 自身的诸多特性,很...
    99+
    2018-09-22
    缓存 | Redis 缓存避坑指南
  • FlexBuilder3使用指南
    FlexBuilder3是一款用于构建Flex应用程序的集成开发环境(IDE),以下是一份FlexBuilder3的使用指南:1. ...
    99+
    2023-09-05
    FlexBuilder3
  • postgresql 使用指南
    centos系列安装分为:yum安装源码安装一、yum安装按照官方的安装文档进行。安装postgresql官方yum仓库yum install https://download.postgresq...
    99+
    2022-10-18
  • Pysvn使用指南
    这是一篇关于pysvn模块的指南. 完整和详细的API请参考 http://pysvn.tigris.org/docs/pysvn_prog_ref.html pysvn是操作Sub...
    99+
    2023-02-20
    Pysvn 使用
  • MySQL kill指令使用指南
    KILL [CONNECTION | QUERY] processlist_id 在Mysql中每个连接都是单独线程运行,可以使用语句 KILL processlist_id statement.来终止语句执...
    99+
    2022-05-19
    MySQL kill指令 MySQL kill
  • Spark 编程指南 (一) [Spa
    Python Programming Guide - Spark(Python) Spark应用基本概念 每一个运行在cluster上的spark应用程序,是由一个运行main函数的driver program和运行多种并行操作的exec...
    99+
    2023-01-31
    指南 Spark Spa
  • cxGrid 使用指南 3
    现在特将收集的一些文章与大家分享,也希望大家不要重蹈我的覆辙.    http://www.delphibbs.com/keylife/iblog_show.aspxid=19911大富翁论坛-富翁笔记-cxgrid (数据库控件)控件...
    99+
    2023-01-31
    使用指南 cxGrid
  • Redis 最佳实践指南:7个维度+43条使用规范
    你的项目或许已经使用 Redis 很长时间了,但在使用过程中,你可能还会或多或少地遇到以下问题: 我的 Redis 内存为什么增长这么快? 为什么我的 Redis 操作延迟变大了? 如何降低 Redis ...
    99+
    2014-09-08
    Redis 最佳实践指南:7个维度+43条使用规范
  • Vue3<scriptsetuplang=“ts“>使用指南
    本文主要是讲解 <script setup> 与 TypeScript 的基本使用。 <script setup>&n...
    99+
    2022-12-08
    Vue3 <script setup lang=“ts“> Vue3 <script setup>
  • Nokia Booklet 3G使用指南
    在购买联通3G上网卡套餐之前,为了避免买来的usim卡不能使用,我特地先去nokia的booklet支持网站查了查帖子。结果发现有个捷克的兄弟从美国的Bestbuy买了机器,却不能用他的3G sim卡上网,因为3G modem被锁定了,只能...
    99+
    2023-01-31
    使用指南 Nokia Booklet
  • Android中viewPager使用指南
    viewPager是谷歌官方提供的一种方便实现页面滑动效果的控件,可以直接使用也可以和fragment联合使用。这里只简单说下直接使用。  使用viewPager的步...
    99+
    2022-06-06
    viewpager Android
  • Spring WebFlux的使用指南
    目录Spring-WebFlux框架 依赖项 响应式应用 响应式RestController 单一资源 集合资源 反应式Web客户端 检索单个资源 检索集合资源 Spring Web...
    99+
    2022-11-12
  • Mac上使用Git指南
    Mac上使用Git的教程 一、安装Git二、创建Git仓库三、配置Git四、提交代码五、分支管理六、远程仓库七、克隆仓库八、撤销更改 本指南介绍了如何在Mac上使用Git。包括安装Git、创建Git仓库、配置Git、提交代...
    99+
    2023-08-16
    git macos github
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作