Redis作用、适用场景
Redis常用命令
一、redis启动 ◆ 本地启动:redis-cli ◆ 远程启动:redis-cli -h host -p port -a password 二、清空Redis所有key ◆ flushdb # 清除当前数据库的所有keys ◆ flushall # 清除所有数据库的所有keys 三、查询匹配key ◆ keys * # 查看所有keys ◆ keys prefix_* # 查看前缀为"prefix_"的所有keys 四、key基本操作 ◆ exists key # 确认一个key是否存在 ◆ set key value # 设置key和value ◆ get key # 获取key的value ◆ del key # 删除一个key ◆ type key # 返回值的类型 ◆ rename oldname newname # 重命名key ◆ dbsize # 返回当前数据库中key的数目 五、String字符串 ◆ set key value # 设置指定 key 的值 ◆ get key #获取指定 key 的值 ◆ strlen key # 返回 key 所储存的字符串值的长度 ◆ mset key value [key value ...] # 同时设置一个或多个 key-value 对 ◆ mget key1 [key2..] # 获取所有(一个或多个)给定 key 的值 六、List列表 ◆ rpush key value # 在名称为key的list尾添加一个值为value的元素 ◆ lpush key value # 在名称为key的list头添加一个值为value的 元素 ◆ lpop key # 返回并删除名称为key的list中的首元素 ◆ rpop key # 返回并删除名称为key的list中的尾元素 ◆ llen key # 返回名称为key的list的长度 ◆ lindex key index # 通过索引获取列表中的元素 ◆ lrange key start stop # 获取列表指定范围内的元素 七、Set无序集合 ◆ sadd key member1 [member2] # 向集合添加一个或多个成员 ◆ smembers key # 返回集合中的所有成员 ◆ scard key #获取集合的成员数 ◆ sinter key1 key2 # 求交集 ◆ sunion key1 key2 # 求并集 ◆ sdiff key1 key2 # 求差集 八、Zset有序集合 ◆ zadd key score1 member1 [score2 member2] # 向有序集合添加一个或多个成员,或者更新已存在成员的分数 ◆ zcard key # 获取有序集合的成员数 ◆ zrange key start stop # 通过索引区间返回有序集合成指定区间内的成员 ◆ zscore key member # 查询成员的分数值 ◆ zrangebyscore key min max # 通过分数返回有序集合指定区间内的成员 九、Hash哈希 ◆ hset key field value #将哈希表 key 中的字段 field 的值设为 value ◆ hget key field #获取给定字段的值 ◆ hmset key field1 value1 [field2 values] # 一次赋值多个字段 ◆ hmget key field1 [field2] # 一次取多个字段的值 ◆ hexists key field # 判断字段是否存在 ◆ hkeys key # 获取所有字段名 ◆ hvals key # 获取所有字段值 ◆ hlen key # 获取字段数量 ◆ hgetall key # 获取所有字段的值 ◆ hdel key field # 删除字段 十、设置key的生存时间 ◆ expire key seconds #设置key的有效时间 单位为秒 ◆ ttl key #获取key的剩余有效时间,持久key返回-1,key不存在返回-2,具体时间返回秒数 Redis 数据备份与恢复 Redis SAVE 命令用于创建当前数据库的备份。 1、数据备份 redis Save 命令基本语法如下:redis 127.0.0.1:6379> SAVE 该命令将在 redis 安装目录中创建dump.rdb文件。 2、恢复数据 如果需要恢复数据,只需将备份文件 (dump.rdb) 移动到 redis 安装目录并启动服务即可。 获取 redis 目录可以使用 CONFIG GET dir非关系型数据库的优点:
常用的五种类型:string(字符串),hash(哈希),list(列表),set(集合),zset(有序集合)
1.String类型
String是最简单的类型,一个key对应一个value
String类型的数据最大512MB。
String类型的值可以被视作integer,从而可以让“INCR”命令族操作(incrby、decr、decrby),这种情况下,该integer的值限制在64位有符号数。
在list、set和zset中包含的独立的元素类型都是Redis String类型。
2.List类型
链表类型,主要功能是push、pop、获取一个范围的所有值等。其中的key可以理解为链表的名字。
在Redis中,list就是Redis String的列表,按照插入顺序排序。比如使用LPUSH命令在list头插入一个元素,使用RPUSH命令在list的尾插入一个元素。当这两个命令之一作用于一个空的key时,一个新的list就创建出来了。
一个List的最大长度是2^32-1个元素 (4294967295, 每个列表超过40亿个元素)。
3.Set类型
集合,和数学中的集合概念相似。操作中的key理解为集合的名字。
在Redis中,set就是Redis String的无序集合,不允许有重复元素。
Set的最大元素数是2^32-1。
Redis中对set的操作还有交集、并集、差集等。
4.ZSet类型
Zset是set的一个升级版本,在set的基础上增加了一个顺序属性,这一属性在添加修改元素时可以指定,每次指定后zset会自动安装指定值重新调整顺序。可以理解为一张表,一列存value,一列存顺序。操作中的key理解为zset的名字。
Zset的最大元素数是2^32-1。
对于已经有序的zset,仍然可以使用SORT命令,通过指定ASC|DESC参数对其进行排序。
5.hash类型
hash是最接近关系数据库结构的数据类型,可以将数据库一条记录或程序中一个对象转换成hashmap存放在redis中。