redis的简介及其常用命令
redis是有C语言编写的高速缓存数据库,是一种非关系型数据库(NOSQL)
redis的特点:
1、读写速度快
2、以key-value键值对形式存储数据
3、支持大量的存储数据类型【字符串,hash,list.set,sort set】
4、redis支持持久化
5、redis支持集群的方式
redis的常见使用场景:
1、Redis 使用场景:
2、记录帖子点赞数、点击数、评论数;
3、缓存近期热帖;
4、缓存文章详情信息;
5、记录用户会话信息
1、关于key的基本操作命令
keys *:查询redis中所有的key
del key[key....]:删除指定的key 可以同时删除多个key(空格隔开)
expire key senconds:为指定的key设置存活时间(时间结束后自动删除key),设置的时间单位为秒
ttl key: 查看指定key的存活时间
以上key为设置的key值,,而非固定字符串key
2、关于数据库方面的操作命令
redis数据库默认为16个库(可在配置文件中修改),标为0-15
flushdb:清空当前数据库中的数据
select index:选择数据库
flushall:清空所有数据库中的数据
3、redis支持的数据库类型
支持的数据库类型即命令可参照:http://redisdoc.com/
1. String字符串类型
2. Hash 哈希类型(字典)
3. list 队列
4. set 集合
5. sorted set 有序集合。
3.1、String字符串类型–》即value值为String类型
set key value:将字符串的value存放到对应的key上
get key:获取对应key处的value值
mset key1 value1 key2 value2 ...:一次性存放多个字符串的value到对应的key上
mget key1 key2 ...:一次性获取多个key对应的value值
setnx key value:将value存放到指定的key中,如果该key存在则不存,如果该key不存在则存储。
incr key:将制定的key中的value进行递增(加1)并返回,key中的value必须为数字,一般可以应用在点赞数,评论数上
decr key:将制定的key中的value进行递减并返回,,可用于取消关注等等
3.2、Hash类型—》key中存储的value值为hash类型
例如:存储一个学生对象,姓名为张三,年龄为18
hset student name zhangsan age zhangsan
hset key field value...: 存放一个指定key的field-value的数据库(field value可以同时设置多个)
hget key field:获取指定key的field字段对应的value值。
hmget key field..:可以获取指定key中的多个field字段
hkeys key: 获取指定key的所有field字段名
hvals key: 获取指定key的所有value值。
hgetall key: 获取指定key的所有的field和value值。
HDEL key field: 删除指定key的field字段。(field可以同时设置多个)
3.3、List队列类型
队列遵循先进先出原则,中间的无法直接移除
lpush: 在队列key的表头插入一个或多个value
lpop:移除并返回列表key的头部元素
lrange:返回列表key中指定区域内的元素。区间以偏移量 start 和 stop 指定 -1表示最后一个元素
3.4、set集合
sadd key value[...]:将一个或多个 member 元素加入到集合 key 当中,已经存在于集合的 member 元素将被忽略。
spop key: 移除并返回集合中随机的一个元素。
smove source destint member:
smembers key:获取指定key下的所有的元素
sinter key key ...:求所有集合的交集。
3.5、sortSet有序集合
zadd key score value score value ....:添加有序集合元素。
zrange key start end: 获取指定返回的元素。
zrank key member:返回有序集 key 中成员 member 的排名。其中有序集成员按 score 值递增(从小到大)顺序排列。