redis:
是为了解决数据库压力过大,数据不同步(session共享),搭建集群之后传统锁失效的问题.是一款基于key-value的nosql,还提供了多种持久化机制,可以达到110000/s的读取和81000/s的写入
安装:docker-compose
version: ‘3.1’
services:
redis:
image:镜像地址(私服)
restart: always
container_name:redis
environment:
- TZ=Asia/Shanghai
ports:
- 6379:6379
进入容器内部redics-cli连接
常用命令:
数据结构:
(常用)
key-string:一个key对应一个值
key-hash:一个key对应一个map(存储一个对象数据)
key-list:一个key对应一个列表(使用list结构实现栈和队列结构)
key-set:一个key对应一个集合(无序,交集并集,差集操作)
key-zset:一个key对应一个有序的集合
(不常用,排行榜,积分储蓄操作)
Hyperlopglog:计算近似值
GEO:地理位置
BIT:一般存储一个字符串,存储一个byte[]
string:
set key value 添加
get key 取值
mset key value [key value ...]
mget key [key...] 批量操作
incr key 自增
decr key 自减
incrby key increment
decrby key increment 自增,自减指定值
hsetnx key field value 设置值
hexists key field 检查field是否存在
hdel key field [field ...] 删除key对应的field,可以删除多个
hgetall key 获取当前hash结构中的全部field和value
hkeys key
获取当前hash结构中的全部field
hvals key
获取当前hash结构中的全部value
hlen key 获取当前hash结构中field的数量
list:
lpush key value [value ...]
rpush key value [value ...] 存储数据(从左侧插入数据,从右侧插入数据)
lpushx key value
rpushx key value 存储数据(如果key不存在,什么事都不做,如果key存在,但是不是list结构,什么都不做)
lset key index value 修改数据(在存储数据时,指定好你的索引位置,覆盖之前索引位置的数据,index超出整个列表的长度,也会失败)
lpop key
rpop key 弹栈方式获取数据(左侧弹出数据,从右侧弹出数据)
lrange key start stop 获取指定索引范围的数据(start从0开始,stop输入-1,代表最后一个,-2代表倒数第二个)
lindex key index 获取指定索引位置的数据
llen key 获取整个列表的长度
lrem key count value 删除列表中的数据(他是删除当前列表中的count个value值,count > 0从左侧向右侧删除,count < 0从右侧向左侧删除,count == 0删除列表中全部的value)