原文参考https://www.cnblogs.com/Java-Starter/p/7638014.html
redis工具https://tv.sohu.com/v/dXMvMC8xMDA0OTQzODAuc2h0bWw=.html
可视化工具https://blog.csdn.net/zx1323/article/details/78135351
redis 观感
1、redis 安装成功后,各服务介绍
redis-benchmark:性能测试工具,可以再自己本子运行,看看自己本子性能如何
reids-check-aof : 修复有问题的AOF文件
reids-check-dump : 修复有问题的dump.rdb文件
redis-sentinel: redis集群使用
redis-server:redis服务器启动命令
redis-cli : 客户端,操作入口
2、介绍
redis默认16个库,初始0号库
使用select <dbid> 切换库,例如select 7
统一密码管理,所有库密码相同
dbsize查看当前数据库的key的数量
flushdb 清空当前库 flushall通杀全部库
redis是单线程+多路io复用技术(memcache多线程+锁)
与memcache 不同点:多种数据类型,可以持久化,单线程+多路io复用
reis 五大数据类型 list string set hash zset(有序集合)
string
最大是512M
append 追加到原值后边 append k1 abc
strlen 查看字符串长度
setnx 当key不存在可以设置成功
incr +1 decr -1 只能对数字类型操作
incrby key n +n decr key n -n
mset 同时设置多个key value ,mget key 同时获取多个key中的value
getrange key start end 包含start和end
setrange key start value 从start开始覆盖原值
getset key value 取到的值是原来的,然后再赋值
setex key 过期时间 value 设置值得同时设置过期时间
list
底层双向链表
lpush key value1 value2...从左边插入 rpush key value1 value2 ... 从右边添加
rlange key start end 取值
lpop key 左边取值 rpop key 右边取值
rpoplpush key1 key2 从key1右边取出存入左边key2
lindex key 下标 根据下边取值
llen key列表长度
linsert key before value1 value2 再value1前边加入value2
lrem key num value 从左边删除num个value
lset key index value 从左边修改index中的value
set 无重复元素,底层字典(hash实现)
sadd key value... 添加多个值
smembers key 取出集合中的所有
sismember key value 判断value是否存在
scard key 返回集合数量
srem key value... 删除
spop key 随机吐出,删除
srandmember key n 随机取出n个值,不删除
smove key1 key2 value 把value从key1转移到key2
sinter key1 key2 交集
sunion key1 key2 并集
sdiff key1 key2 返回key1中存在key2中不存在的值
hash 类似map<String,Object> 适用于存储对象,底层个数少时ziplist,数据量大hashtable
hset key field value 添加一个对象,属性filed 值
hget key field 查看value
hmset key field value ...批量存储
hexusts key field 判断filed属性是不是存在
hkeys key查看所有属性
hvals key 查看所有value
hincrby key field 为value+1
hsetnx key field value添加值,但是field原来不存在,存在不存
zset有序集合
redis6新数据类型
Bitmaps 使用位来记录和操作数据(例如:统计网站活跃量,每天活跃人数,每月活跃人数的计算)
HyperLogLog 对基数进行操作(比如这几天一共多少人进行上网去重,或者这几天有多少ip进行操作这个网站)
Geospatial 对地图坐标进行操作 ,可以计算地图直径距离和以某地位中心半径为多少的范围有多少城市。可以通过城市获取经纬度
操作
keys *查看当前库所有key 或者其他库keys *1 msetnx key 同时设置都不存在的key才成功
exits key 判断key是否存在
type key key类型
del key 直接删除
unlink key 异步删除
expire key 10 单位:s
ttl key 是否过期 1不过期 -2过期 -1永不过期