redis 特点
- 分布式内存数据库
- redis 支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次进行加载使用
- redis 不仅仅支持简单的key-value类型的数据,同时也可以提供list,set,zset,hash等数据结构的存储
- redis 支持数据的备份,即master-slave模式的数据备份
redis 的事务:部分成功
单进程
默认十六个库
select 命令切换数据库
Dbsize查看当前数据库的key数量
Flushdb清空当前库
Flushall通杀全部库
同意密码管理,16个库都是同样的密码,要么都ok要么一个也连不上
Redis 所以都是从零开始
redis的五大数据类型
String (字符串) 是redis最基本的类型,可以理解为memcached一摸一样的类型,一个key对应一个value,String类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象,一个redis中自负床value最多可以是512M
Hash (哈希,类似java里的map) redis hash 是一个键值对集合,是一个string类型的filed和value的映射表,hash特别适合用于存储对象
List(列表) redis列表是简单的字符串列表,按照插入顺序排序,可以添加 一个元素在左边或者右边,底层是一个链表
Set(集合) 是String类型的无序集合,他是通过hashTable实现的
Zset(sorted set:有序集合) redis zset 和 set 一样也是string 累心元素的集合,且不用徐重复的成员。不是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序 。zset的成员是唯一的,但score却可以重复。
redis 键 key
keys *
exists key 的名字,判断某个key是否存在
move key db —> 当前库就没有了,被移除了
expire key 秒钟:为给定的key设置过期时间
ttl key 查看还有多少秒过期,-1表示永不过期,-2表示已过期
type key 查看你的key是什么类型
redis 字符串
set/get/del/append/strlen
Incr/decr/inceby/decrby,必须是数字才能进行加减
getrange/setrange — setrange kye1 0 xxx
setex(set with expir)键秒值/setnx(set if not exist)
mset/mget/msetnx — 一次存多个/取多个/多个同时不存在 存入
getset(先get再set)
redis列表
lpush/rpush/lrange
lpop/rpop
lindex,按照索引下标获得元素(获得元素)
llen
lrem key 删n个value
ltrim key 开始index 结束index,截取指定范围的值后再付给key
rpoplpush 源列表 目的列表
lset key index value
linsert key before/after 值1 值2
性能总结:他是一个字符串列表,left,right都可以插入添加,如果不存在,创建新的链表,如果键已存在,新增内容,如果值全移除,对应的键也就消失,链表的操作无论是头和尾效率都极高,但加入是对中间元素操作,效率就很惨淡。
redis集合
sadd/smembers/sismember
scard,获取集合里面的元素个数
srem key value 删除集合中元素
srandmember key 某个整数(随机出几个数)
spop key 随机出栈
smove key1 key2 在key1 里某个值 作用是将key里的某个值付给key2
数学集合类: 差集:sdiff / 交集:sinter / 并集:sunion
redis哈希
kv模式不变,但v是一个键值对
hset/hget/hmset/hmget/hgetall/hdel
hlen
hexists key 在key里面的某个值的key
hkeys/hvals
redis有序集合zset(sorted set)
在set基础上,加一个score值
之前set是k1 v1 v2 v3,
现在是zset是k1 score1 v1 score2 v2
zadd/zrange
zrangebyscore key 开始score 结束score withscores/( 不包含/limit 作用是返回限制,limit开始下标步 多少步
zrem key 某score 下对应的value值,作用是删除元素
zcard/zcount key score 区间 /zrank key values值。作用是获得下标值/zscore key对应值,获得分数
zrevrank key values 值,作用是逆序获得下标值
zrerange
zrevrangebyscore key 结束 score 开始score