redis
使用场景:数据字典,比如账期,只支持最近12个月,最早从已有开始
它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。
Redis 与其他 key - value 缓存产品有以下三个特点:
- Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。
- Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset(有序集合),hash等数据结构的存储。
- Redis支持数据的备份,即master-slave模式的数据备份。
启动
redis-server.exe redis.conf
性能测试
redis-benchmark.exe
进入命令模式
redis-cli.exe -h 127.0.0.1 -p 6379
关闭服务
shutdown
选择数据库
select 数据库下标。如2号库 select 0
redis默认16个库
有多少key
dbsize
查询所有key
keys *
字符串存取
SET name "redis.net.cn"
GET name
string类型,最在value为512M
哈希存取
HMSET user:1 username redis.net.cn password redis.net.cn points 200
HGETALL user:1
列表存取
lpush redis.net.cn redis
lpush redis.net.cn mongodb
lrange redis.net.cn 0 10
lrange names 0 -1 #-1指的查全部
lpush指的是list push ,从左边加入列表,与之相对的rpush
集合存取
sadd redis.net.cn redis
sadd redis.net.cn mongodb
smembers redis.net.cn
常用命令
DEL key 该命令用于在 key 存在时删除 key。
EXISTS key 检查给定 key 是否存在。
EXPIRE key seconds 为给定 key 设置过期时间。
TTL key 以秒为单位,返回给定 key 的剩余生存时间(TTL, time to live)
TYPE key 返回 key 所储存的值的类型
字符串
SETEX key seconds value 将值 value 关联到 key ,并将 key 的过期时间设为 seconds (以秒为单位)
set with expire
SETNX key value 只有在 key 不存在时设置 key 的值
set if not exist
STRLEN key 返回 key 所储存的字符串值的长度。
MSET key value [key value ...] 同时设置一个或多个 key-value 对
append key value 字符串追加
incr key 数值类型递增
decr key 数值类型递减
incrby key num 数值类型增加num
decrby key num 数值类型减少num
mset k1 v1 k2 v2 k3 v3 为多个Key赋值
mget k1 k2 k3 取多个key值
哈希(HASH)
HMSET key field1 value1 [field2 value2 ] 同时将多个 field-value (域-值)对设置到哈希表 key 中。
HDEL key field2 [field2] 删除一个或多个哈希表字段
HKEYS key 获取所有哈希表中的字段
HLEN key 获取哈希表中字段的数量
HMGET key field1 [field2] 获取所有给定字段的值
HSET key field value 将哈希表 key 中的字段 field 的值设为 value
列表
LSET key index value 通过索引设置列表元素的值
LINDEX key index 通过索引获取列表中的元素
LINSERT key BEFORE|AFTER pivot value 在列表的元素前或者后插入元素
LLEN key 获取列表长度
LTRIM key start stop 对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除
LPOP key 移出并获取列表的第一个元素
LPUSH key value1 [value2] 将一个或多个值插入到列表头部
LREM key count value 移除列表元素
- count > 0 : 从表头开始向表尾搜索,移除与 VALUE 相等的元素,数量为 COUNT 。
- count
< 0 : 从表尾开始向表头搜索,移除与 VALUE 相等的元素,数量为 COUNT 的绝对值。
- count = 0 : 移除表中所有与 VALUE 相等的值。
LSET key index value 通过索引设置列表元素的值
RPOP key 移除并获取列表最后一个元素
集合(Set)
SADD key member1 [member2] 向集合添加一个或多个成员
SCARD key 获取集合的成员数
SMEMBERS key 返回集合中的所有成员
SREM key member1 [member2] 移除集合中一个或多个成员
Redis发布订阅机制
https://www.cnblogs.com/yitudake/p/6747995.html
ActiveMQ所提供的功能远比Redis发布订阅要复杂,毕竟Redis不是专门做发布订阅的,但是如果系统中已经有了Redis,并且需要基本的发布订阅功能,就没有必要再安装ActiveMQ了,因为可能ActiveMQ提供的功能大部分都用不到,而Redis的发布订阅机制就能满足需求
事务
先以 MULTI 开始一个事务, 然后将多个命令入队到事务中, 最后由 EXEC 命令触发事务, 一并执行事务中的所有命令
MULTI 标记一个事务块的开始。
EXEC 执行所有事务块内的命令
DISCARD 取消事务,放弃执行事务块内的所有命令
Redis SAVE 命令用于创建当前数据库的备份。
执行save命令后,内存中的数据就会存储到磁盘上。这时,如果重启服务,磁盘上的数据就会自动加载到内存中。
设置访问密码
config set requirepass 123456
认证登录
auth 123456
redis集群可以采用哨兵模式和集群模式
哨兵模式:1主2从,3哨兵。哨兵监测redis库状态
可以使用“info replication”查看redis库状态