Redis 的介绍
Redis是一款内存高速缓存数据库。Redis全称为:Remote Dictionary Server (远程数据服务),使用C语言编写,Redis是一个key-value存储系统(键值存储系统),支持丰富的数据类型,如:String、list、set、zset、hash。Redis是一种支持key-value等多种数据结构的存储系统。可用于缓存,事件发布或订阅,高速队列等场景。使用C语言编写,支持网络,提供字符串,哈希,列表,队列,集合结构直接存取,基于内存,可持久化。
Redis以内存作为数据存储介质,读写数据的效率极高。
Redis跟memcache不同的是,储存在Redis中的数据是持久化的,断电或重启,数据也不会丢失。
Redis的存储分为内存存储、磁盘存储和log文件。
Redis可以从磁盘重新将数据加载到内存中,也可以通过配置文件对其进行配置,因此,redis才能实现持久化。
Redis支持主从模式,可以配置集群,更利于支撑大型的项目。
一.Redis临时服务
1.打开cmd,进入到刚才解压到的目录,启动临时服务:redis-server.exe redis.windows.conf (备注:通过这个命令,会创建Redis临时服务,不会在window Service列表出现Redis服务名称和状态,此窗口关闭,服务会自动关闭。)
2.打开另一个cmd窗口,客户端调用:redis-cli.exe -h 127.0.0.1 -p 6379
二.Redis自定义windows服务安装
1.进入Redis安装包目录,安装服务:redis-server.exe --service-install redis.windows.conf --service-name redisserver1 --loglevel verbose
win+r -> services.msc,可以看到服务安装成功
安装服务:redis-server.exe --service-install redis.windows.conf --service-name redisserver1 --loglevel verbose
启动服务:redis-server.exe --service-start --service-name redisserver1
停止服务:redis-server.exe --service-stop --service-name redisserver1
卸载服务:redis-server.exe --service-uninstall--service-name redisserver1
三. 主从服务器
将d盘下新建一个文件夹叫redis2,把redis文件夹的东西拷贝到redis2文件夹下,将redis-windows.conf配置文件中的ip 和端口号改一下,然后按照上面的步骤按照一个服务即可
使用redis桌面管理器,看到两个redis库
设置密码把 #requirepass foobared 的#号去掉改为自己的密码即可
设置好保存后,若要使设置起作用,需要重启redis服务
端口号和ip同理
重启后需要输入密码
Redis应用场景
众多语言都支持Redis,因为Redis交换数据快,在服务器中常用来存储一些需要频繁调取的数据,节省内存开销,也极大的提升了速度。
将一些热点数据存储到Redis中,要用的时候,直接从内存取,极大的提高了速度和节约了服务器的开销。
1、消息队列(支付)
2、活动排行榜或计数
3、会话缓存(最常用)
4、发布,订阅消息(消息通知)
5、商品列表,评论列表
Redis支持数据类型
Redis一共支持五种数据类型:String(字符串)、hash(哈希)、list(列表)、set(集合)和zset(sorted set有序集合)
List(列表):是redis的简单的字符串列表,按插入顺序排序
Set(集合):是String字符串类型的无序集合,也不可重复
String(字符串):Redis最基本的数据类型,一个键对应一个值,一个键值最大存储512MB
Hash(哈希):hash是一个键值对的集合,是一个String类型的field和value的映射表,适合用于存储对象
ZSet(sorted set 有序集合)是String类型的有序集合,也不可重复。有序集合中的每个元素都需要指定一个分数,根据分数对元素进行升序排序。
redis的服务相关命令
slect#选择数据库(数据库编号0-15)
退出 # 退出连接
信息 # 获得服务的信息与统计
monitor # 实时监控
flushdb # 删除当前选择的数据库中的key
flushall # 删除所有数据库中的键
config get # 获得服务配置
Redis的持久化
Redis持久有两种方式:快照(RDB),仅附加文件(AOF)
一、快照(RDB):
1、将存储在内存的数据以快照的方式写入二进制文件中,默认dump.rdb中
2、保存900 1 # 900秒内如果超过1个key被修改,则启动快照保存
3、保存300 10 # 300秒内如果超过10个key被修改,则启动快照保存
4、保存60 1000 # 60秒内如果超过10000个重点被修改,则启动快照保存
仅附加文件(AOF):1、使用AOF持久时,服务会将每个收到的写命令通过写函数追加到文件中(appendonly.aof)
二、AOF持久化存储方式参数说明
appendfsync always #收到写命令后就立即写入磁盘,效率最差,效果最好
appendfsync everysec #每秒写入磁盘一次 效率与效果居中
appendonly yes #开启AOF持久化存储方式
appendfsync no #完全依赖操作系统,效率最佳,效果没法保证
Redis 命令参考
Key(键)
DEL
DUMP
EXISTS
EXPIRE
EXPIREAT
KEYS
MIGRATE
MOVE
OBJECT
PERSIST
PEXPIRE
PEXPIREAT
PTTL
RANDOMKEY
RENAME
RENAMENX
RESTORE
SORT
TTL
TYPE
SCAN
String(字符串)
APPEND
BITCOUNT
BITOP
DECR
DECRBY
GET
GETBIT
GETRANGE
GETSET
INCR
INCRBY
INCRBYFLOAT
MGET
MSET
MSETNX
PSETEX
SET
SETBIT
SETEX
SETNX
SETRANGE
STRLEN
Hash(哈希表)
HDEL
HEXISTS
HGET
HGETALL
HINCRBY
HINCRBYFLOAT
HKEYS
HLEN
HMGET
HMSET
HSET
HSETNX
HVALS
HSCAN
List(列表)
BLPOP
BRPOP
BRPOPLPUSH
LINDEX
LINSERT
LLEN
LPOP
LPUSH
LPUSHX
LRANGE
LREM
LSET
LTRIM
RPOP
RPOPLPUSH
RPUSH
RPUSHX
Set(集合)
SADD
SCARD
SDIFF
SDIFFSTORE
SINTER
SINTERSTORE
SISMEMBER
SMEMBERS
SMOVE
SPOP
SRANDMEMBER
SREM
SUNION
SUNIONSTORE
SSCAN
SortedSet(有序集合)
ZADD
ZCARD
ZCOUNT
ZINCRBY
ZRANGE
ZRANGEBYSCORE
ZRANK
ZREM
ZREMRANGEBYRANK
ZREMRANGEBYSCORE
ZREVRANGE
ZREVRANGEBYSCORE
ZREVRANK
ZSCORE
ZUNIONSTORE
ZINTERSTORE
ZSCAN
Pub/Sub(发布/订阅)
PSUBSCRIBE
PUBLISH
PUBSUB
PUNSUBSCRIBE
SUBSCRIBE
UNSUBSCRIBE
Transaction(事务)
DISCARD
EXEC
MULTI
UNWATCH
WATCH
Script(脚本)
EVAL
EVALSHA
SCRIPT EXISTS
SCRIPT FLUSH
SCRIPT KILL
SCRIPT LOAD
Connection(连接)
AUTH
ECHO
PING
QUIT
SELECT
Server(服务器)
BGREWRITEAOF
BGSAVE
CLIENT GETNAME
CLIENT KILL
CLIENT LIST
CLIENT SETNAME
CONFIG GET
CONFIG RESETSTAT
CONFIG REWRITE
CONFIG SET
DBSIZE
DEBUG OBJECT
DEBUG SEGFAULT
FLUSHALL
FLUSHDB
INFO
LASTSAVE
MONITOR
PSYNC
SAVE
SHUTDOWN
SLAVEOF
SLOWLOG
SYNC
TIME
Redis相关测试工具
redis-benchmark --help
redis-benchmark -n 10000 -q