Redis
数据操作
string
- 设置键值
set key value - 设置键值及过期时间,以秒为单位
setex key seconds value - 设置多个键值
mset key1 value1 key2 value2 … - 追加值
append key value - 获取:根据键获取值,如果不存在此键则返回nil
get key - 根据多个键获取多个值
mget key1 key2 …
键操作
- 查找键,参数⽀持正则表达式
keys pattern - 判断键是否存在,如果存在返回1,不存在返回0
exists key1 - 查看键对应的value的类型
type key - 删除键及对应的值
del key1 key2 … - 设置过期时间,以秒为单位
如果没有指定过期时间则⼀直存在,直到使⽤DEL移除
expire key seconds - 查看有效时间,以秒为单位
ttl key
hash
-
增加,修改
- 设置单个属性
hset key field value - 设置多个属性
hmset key field1 value1 field2 value2 …
- 设置单个属性
-
获取
- 获取指定键所有的属性
hkeys key - 获取⼀个属性的值
hget key field - 获取多个属性的值
hmget key field1 field2 … - 获取所有属性的值
hvals key
- 获取指定键所有的属性
-
删除
- 删除整个hash键及值,使⽤del命令
删除属性,属性对应的值会被⼀起删除
hdel key field1 field2 …
- 删除整个hash键及值,使⽤del命令
list
-
增加
- 在左侧插⼊数据
lpush key value1 value2 … - 在右侧插⼊数据
rpush key value1 value2 … - 在指定元素的前或后插⼊新元素
linsert key before或after 现有元素 新元素
- 在左侧插⼊数据
-
获取
- 返回列表⾥指定范围内的元素
start、stop为元素的下标索引
索引从左侧开始,第⼀个元素为0
索引可以是负数,表示从尾部开始计数,如-1表示最后⼀个元素
lrange key start stop
-
删除
- 删除指定元素
将列表中前count次出现的值为value的元素移除
count > 0: 从头往尾移除
count < 0: 从尾往头移除
count = 0: 移除所有
lrem key count value
-
设置索引位置的元素值
- 设置指定索引位置的元素值
索引从左侧开始,第⼀个元素为0
索引可以是负数,表示尾部开始计数,如-1表示最后⼀个元素
- 设置指定索引位置的元素值
lset key index value
set
-
⽆序集合
元素为string类型
元素具有唯⼀性,不重复
说明:对于集合没有修改操作 -
增加
- 添加元素
sadd key member1 member2 …
- 添加元素
-
获取
- 获取
返回所有的元素
smembers key
- 获取
-
删除
- 删除
删除指定元素
srem key
- 删除
zset
-
sorted set,有序集合
元素为string类型
元素具有唯⼀性,不重复
每个元素都会关联⼀个double类型的score,表示权重,通过权重将元素从⼩到⼤排序
说明:没有修改操作 -
增加
- 添加
zadd key score1 member1 score2 member2 …
- 添加
-
获取
- 返回指定范围内的元素
start、stop为元素的下标索引
索引从左侧开始,第⼀个元素为0
索引可以是负数,表示从尾部开始计数,如-1表示最后⼀个元素
zrange key start stop - 返回score值在min和max之间的成员
zrangebyscore key min max - 返回成员member的score值
zscore key member
- 返回指定范围内的元素
-
删除
- 删除指定元素
zrem key member1 member2 … - 删除权重在指定范围的元素
zremrangebyscore key min max
- 删除指定元素
总结
- string
set
setex
mset
append
get
mget
**
- key
**
keys
exists
type
delete
expire
getrange
ttl
- hash
hset
hmset
hkeys
hget
hmget
hvals
hdel
- list
lpush
rpush
linsert
lrange
lset
lrem
**
- set
**
sadd
smembers
srem
- zset
zadd
zrange
zrangebyscore
zscore
zrem
zremrangebyscore
搭建主从
主从概念
⼀个master可以拥有多个slave,⼀个slave⼜可以拥有多个slave,如此下去,形成了强⼤的多级服务器集群架构
master用来写数据,slave用来读数据,经统计:网站的读写比率是10:1
通过主从配置可以实现读写分离
搭建集群
为什么要搭建集群:一主可以多从,如果同时的访问量过大(1000w),主服务肯定就会挂掉,数据服务就挂掉了或者发生自然灾难
大公司都会有很多的服务器(华东地区、华南地区、华中地区、华北地区、西北地区、西南地区、东北地区、台港澳地区机房)
集群的概念
集群是一组相互独立的、通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理。一个客户与集群相互作用时,集群像是一个独立的服务器。集群配置是用于提高可用性和可缩放。当请求到来首先由负载均衡服务器处理,把请求转发到另外的一台服务器上。
Redis集群
- 软件层面:只有一台电脑,在这一台电脑上启动了多个redis服务。
- 硬件层面:存在多台实体的电脑,每台电脑上都启动了一个redis或者多个redis服务。
XMind: ZEN - Trial Version