一、redis简介
1.什么是redis?
Remote Dictionary Server(远程字典服务器),是一种用C语言编写的、开源的、基于内存运行并支持持久化的、高性能NoSQL(非关系型)数据库,基于key-value存储数据,管理数据的软件。不同的数据库底层实现不同。
2.redis的特点
Redis中的数据大部分时间都是存储内存中的,由于内存的昂贵,因此不能存储太多的数据;redis适合存储频繁访问、数据量比较小的数据,MongoDB。HBase可以用来存储大数据量数据
支持多种数据结构(
key-value
数据,还支持set
,zset
,list
,hash
等数据结构的存储)支持数据备份(master-slave主从模式的数据备份)
支持数据持久化(redis将内存中的数据持久化到磁盘中,重启时再次加载使用)
二、Redis的使用
1.安装Redis数据库
下载稳定版本
使用Linux版本的Redis
解压,编译,安装
2. 启动Redis服务
前台启动:
在任何目录下redis-server
后台启动:
在任何目录下执行 redis-server &
启动redis服务时,指定配置文件
redis-server redis.cong &
占用端口号:默认6379
在redis.conf文件中修改配置
关闭服务:
暴力关闭
通过杀死进程
通过redis-cli shutdown
使用redis客户端向redis服务端发送命令,启动redis客户端 redis-cli
redis-cli -p 端口号,连接本机的指定端口上的redis服务
exit或者quit,客户端退出
redis-cli -h IP地址 -p 端口号,连接指定主机上的指定端口号上的redis服务
集群:在一个服务器上安装多个redis服务
三、Redis的基本知识
1.测试redis服务的性能:
win系统打开cmd/linux系统命名行直接执行
命令行执行命令redis-benchmark
2.测试查看redis是否正常运行
redis客户端输入命令 ping 如果正常返回 pong
3.统计redis服务器的的统计信息
客户端执行命令 info
统计系统性能信息,集群信息等等,占多少CPU,占多
客户端执行命令:info [信息段]
127.0.0.1:6379> info
# Server
redis_version:5.0.14.1
redis_git_sha1:ec77f72d
redis_git_dirty:0
redis_build_id:5627b8177c9289c
redis_mode:standalone
os:Windows
arch_bits:64
multiplexing_api:WinSock_IOCP
atomicvar_api:pthread-mutex
process_id:4904
run_id:0bfd9fd194e3cfb5e7a1518819692589303592a1
tcp_port:6379
uptime_in_seconds:10
uptime_in_days:0
hz:10
configured_hz:10
lru_clock:360931
executable:C:\Users\19201\redis-server
config_file:D:\dev\redis\redis.windows.conf
# Clients
connected_clients:1
client_recent_max_input_buffer:2
client_recent_max_output_buffer:0
blocked_clients:0
127.0.0.1:6379>
127.0.0.1:6379>
127.0.0.1:6379> info CPU
# CPU
used_cpu_sys:0.031250
used_cpu_user:0.031250
used_cpu_sys_children:0.000000
used_cpu_user_children:0.000000
4.redis的数据库实例:作用类似于Mysql的数据库实例,redis中的数据库实例只能由redis服务来创建和维护
开发人员不能修改和自行创建数据库实例
默认情况下,redis会自动创建16个数据库实例,并且给这些数据库实例进行编号,从0开始,一直到15,使用时通过编号来使用数据库
可以通过 redis.conf配置文件来配置指定redis自动创建数据库个数
如果创建多个库会不会造成空间浪费,redis跟mysql不一样,mysql一个库需要里面的引擎等来维护数据库表结构因此数据库实例会很大,redis一个初始化的库大概就几kb,不会造成太大的浪费
刚开始登录,默认使用编号为 0 的数据库,
切换数据库实例:客户端执行命令,select index ,index标识数据库实例的编号
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> select 5
OK
127.0.0.1:6379[5]> select 45
(error) ERR DB index is out of range
127.0.0.1:6379[5]> select 15
OK
127.0.0.1:6379[15]> select 16
(error) ERR DB index is out of range
127.0.0.1:6379[15]>
5.查看数据
查看数据库中key的个数,客户端命令 dbsize
0号库比较特殊,当创建后,会默认添加几条数据
查看数据库中都有哪些key值,客户端命令,keys *
清空数据库key值,客户端命令,flushdb ,当前库里的key都没有了
清空全部数据库中的key,客户端命令,flushall
127.0.0.1:6379> keys *
1) "aabc"
127.0.0.1:6379>
127.0.0.1:6379>
127.0.0.1:6379> dbsize
(integer) 1
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> dbsize
(integer) 0
127.0.0.1:6379[1]> set test abc
OK
127.0.0.1:6379[1]>
127.0.0.1:6379[1]> dbsize
(integer) 1
127.0.0.1:6379[1]> flushdb
OK
127.0.0.1:6379[1]> dbsize
(integer) 0
127.0.0.1:6379[1]> select 0
OK
127.0.0.1:6379> dbsize
(integer) 1
127.0.0.1:6379>
127.0.0.1:6379> flushall
OK
127.0.0.1:6379>
6.查看redis的配置信息
客户端命令,查看所有配置信息,config get *
客户端命令,查看指定的配置信息,config get [配置名]
127.0.0.1:6379> config get *
1) "dbfilename"
2) "dump.rdb"
3) "requirepass"
4) ""
5) "masterauth"
6) ""
7) "cluster-announce-ip"
8) ""
9) "unixsocket"
10) ""
11) "logfile"
12) ""
13) "pidfile"
14) ""
15) "slave-announce-ip"
16) ""
17) "replica-announce-ip"
18) ""
19) "maxmemory"
20) "0"
21) "proto-max-bulk-len"
22) "536870912"
23) "client-query-buffer-limit"
24) "1073741824"
25) "maxmemory-samples"
26) "5"
27) "lfu-log-factor"
7.redis的五大数据类型
redis的五种数据结构中,前4种与java的数据结构都可以一一对应,第五种没有对应的类型,分别是
1.String(字符串、数值类型、布尔类型,都可以用一个值表示)的操作
2.lists对应有序集合、数组等等,按照数据插入顺序存储数据
3.set对应无需无重复集合
4.hash对应实体类对象
5.zset(sorted set)有序集合,顺序并不是按照元素的存放先后顺序,排序是按照指定的排序指标进行排序