redisRedis 通常被称为数据结构服务器,因为值(value)可以是字符串(String)、哈希(Hash)、列表(list)、集合(sets)和有序集合(sorted sets)等类型
redis中常见的命令
redis中对key的操作
1. keys *: 查询当前redis中所有的key.
2. expire key second: 为指定的key设置过期时间
3. ttl key: 查看指定key的过期时间
4. del key: 删除指定的key
5. exists key: 判断指定的key是否存在。 存在返回1 不存在返回0
redis中对数据库操作命令
select index: 选择相应的数据库
flushdb: 清空当前库
flushall: 清空所有库
(这些命令大多时候在移交项目之后确认完成后使用)
redis支持的数据类型
redis中value的类型很多。字符串,散列,列表,集合,具有范围查询的排列集合,位图,超日志,地理空间索引和流。
string数据类型的命令
1. set key value: 存放指定key的字符串类型。
2. setnx key value: 如果指定的key存在,则不存放redis中,如果不存在则存入redis.
3. get key: 获取指定key值
4. mset key value key value....: 存储多个key和value的值
5. mget key key key...:获取多个key对于的值。
6. incr key: 对指定的key的value进行累加。
7. decr key: 对指定的key的value进行递减。
hash散列类型的命令
1. HSET key field value [field value]: 存放指定key的field和value值
2. hget key field: 获取指定key的field对于的value值。
3. hkeys key: 获取指定key对于的所有field.
4. hvals key: 获取指定key对应 的所有value值。
5. hgetall key: 获取指定key下所有的内容。
list队列类型的命令
1, lpush key value: 根据key从左边存放对应的队列数据,
2. lrange key start end: 获取key指定的元素
3. LPOP key: 从左边获取指定key的第一个元素 并移除该元素。
set集合类型的命令
和上面list的唯一区别 就是不允许重复,无序
sadd key value value ....
smembers key: 获取指定key下所有的元素。
spop key: 获取指定key的元素 随机。
sismember key value 判断元素是否在集合中
sort ser 集合类型的命令
和上面的set的区别是有序,多了一个字段score
zadd key score member score membere
zrange
redis 的应用场景
1、热点数据的缓存: 作为缓存数据。缓存都是基于内存走
2. 限时业务的运用: 秒杀 存放用户信息 短信保存 。expire
3. 计数器相关问题: 点赞量 播放量 访问量 incr
4. 排行榜相关问题:
5. 分布式锁: setnx()
redis 持久化方式
1.RDB快照 2.AOF日志追加
如果两种持久化都使用,默认加载appendonly.aof文件,因为redis认为它的数据完整性高。企业中就不要开启appendonly了