简介
Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。 Redis 内置了 复制(replication),LUA脚本(Lua scripting), LRU驱动事件(LRU eviction),事务(transactions) 和不同级别的 磁盘持久化(persistence), 并通过 Redis哨兵(Sentinel)和自动 分区(Cluster)提供高可用性(high availability)。
相关网站
常用命令
redis-cli
连接 redis
切换数据库
查看数据库数据量
查看数据库所有的key
存值、取值
清空数据操作
判定键是否存在
移动某个键到某个数据库
设置键的过期时间,查看键的剩余过期时间
查看数据类型
数据类型
string
末尾追加字符串
自增、自减操作
截取、替换字符串
setex、setnx(分布式锁、乐观锁常用)
存取多值
getset
list
lpush
rpush
lpop、rpop
lindex
llen
lrem
ltrim
rpoplpush
exists
lset
linsert
set
sadd
sismember、scard
srem
srandmember
smove
sdiff、sinter、sunion
hash
hset
hdel
hlen、hkeys、hvals
hexists
hincrby、hdecrby
zset
zadd
zcard
zrevrange
zrem
zcount
事务
MULTI 、 EXEC 、 DISCARD 和 WATCH 是 Redis 事务相关的命令。事务可以一次执行多个命令, 并且带有以下两个重要的保证:
- 事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。
- 事务是一个原子操作:事务中的命令要么全部被执行,要么全部都不执行。
EXEC 命令负责触发并执行事务中的所有命令:
- 如果客户端在使用 MULTI 开启了一个事务之后,却因为断线而没有成功执行 EXEC ,那么事务中的所有命令都不会被执行。
- 另一方面,如果客户端成功在开启事务之后执行 EXEC ,那么事务中的所有命令都会被执行。
当使用 AOF 方式做持久化的时候, Redis 会使用单个 write(2) 命令将事务写入到磁盘中。
管理客户端
自带的 redis-cli
RedisDesktopManager (高版本收费,0.9.3 免费)
下载地址 https://github.com/uglide/RedisDesktopManager/releases/tag/0.9.3
RedisInsight
下载地址 https://docs.redis.com/latest/ri/installing/install-redis-desktop/
单机启动
集群启动(三台机器,三主三从,Docker版)
虚拟机3台Liunx设备
3台机器分别创建容器
启动容器,并设置docker重启始终启动策略
随意进入一个容器
设置集群关系
测试集群