Redis学习笔记(一)Redis基础知识
前言
本篇文章是我学习Redis数据库的总结笔记,内容包括Redis的安装以及基本数据类型的操作
Redis 基础
Redis 是一个开源的(遵从BSD协议)高性能键值对(key-value)的内存数据库,可以用作数据库、缓存、消息中间件等。它是一种NoSQL(not-only sql,泛指非关系型数据库)的数据库。
安装 redis
推荐使用Docker安装Redis,非常简单,只需要以下几个步骤:
1. 拉取镜像
docker pull redis
2. 创建Redis容器
docker run -itd --name redis -p 6379:6379 redis
3. 进入Redis容器,通过redis-cli
命令就可以使用了
$ docker exec -it redis /bin/bash
root@cf1b4dc48215:/data# redis-cli
127.0.0.1:6379>
4. 安装iredis插件
iredis(Interactive Redis,即:交互式Redis),是 Redis 的终端客户端,具有自动补全功能和语法高亮功能。这样在练习Redis
的时候,就不用担心记不住各种指令了。 安装过程很简单,在终端输入pip install iredis
即可(如果安装慢,可以在这条指令后加上--default-timeout=100 -i https://pypi.tuna.tsinghua.edu.cn/simple
,指定国内源),安装完成后,在终端输入iredis
指令,就会自动连接到本地的Redis了。效果如下图所示:
Redis基本数据类型及其操作
这部分参考官方文档An introduction to Redis data types and abstractions 和 Redis commands
1. Redis keys
Redis是一key-value数据库,数据的增加、修改、删除、查找操作都是围绕着key来进行的。Redis keys是二进制安全的,我们可以使用一个字符串"foo"来表示key,空字符也是合法的。key的最大值允许达到512MB,但是一般建议key的值不应该太大也不应该太小,推荐使用"object-type:id"这种格式,比如"user:10"。
key的基本操作指令:
- del key : 该命令用来删除key,如果删除成功,则返回(integer) 1,否则返回(integer) 0
- exists key : 判断key是否存在
- expire key seconds : 给key设置过期时间,单位是秒
- expireat key timestamp : 给key设置过期时间,单位是时间戳
- pexpire key milliseconds : 给key设置过期时间,单位是毫秒
- keys pattern : 根据(pattern)查找key
- move key db : 将key移动到指定数据库
- persist key : 移除key的过期时间,key将永久存储
- pttl key : 查看key的剩余的过期时间(单位毫秒),如果没有给key设置过期时间,则返回-1
- ttl key : 查看key的剩余过期时间(单位秒),如果没有给key设置过期时间,则返回-1
- randomkey : 从当前数据库中随机返回一个key
- rename key newkey : 重命名key(这条命令可能会覆盖newkey)
- renamex key newkey : 仅当newkey不存在时,将key改名为newkey
- type key : 返回key的类型
- SCAN cursor [MATCH pattern] [COUNT count] [TYPE type] : 迭代当前数据库中的key
2. Redis Strings
字符串,是Redis最简单的数据类型
Redis Strings的基本操作指令:
- set key value : 设置key的值
- setnx key value : 当key不存在时,设置key的值
- set key value nx : 当key不存在时,设置key的值
- get key : 获取key的值
- getrange key start end : 截取key中存储的字符串的部分并返回
- mset key1 value1 key2 value2 ... : 给多个key设置值
- mget key1 key2 ... : 获取多个key的值
- setex key seconds value : 设置key的值,并且设置过期时间为seconds秒
- strlen key : 返回key存储的字符串的长度
- incr key : 将key中存储的值加一
- incrby key increment : 将 key 所储存的值加上给定的增量值(increment)
- decr key : 将key中存储的值减一
- decr by key decrement : 将 key 所储存的值减去给定的减量值(decrement)
3. Redis Lists
Redis Lists 是基于 linked list 实现的,所以它的特点是增删快
Redis Lists 基本的基本操作指令:
- lpush key element1 [element2] : 将一个或多个元素插入列表头部(左边)
- rpush key element1 [element2] : 将一个或多个元素插入列表尾部(右边)
- llen key : 获取列表的长度
- lindex key index : 根据下标获取列表中指定位置的元素
- lpop key : 获取列表中的第一个元素,并删除
- rpop key : 获取列表中的最后一个元素,并删除
- lrange key start end : 获取列表指定范围内的元素,(lrange key 0 -1 遍历整个列表)
4. Redis Hashes
Redis hash 的存储格式为key-value的键值对,比较适合用来存储对象
Redis hash的基本操作指令:
- hset key filed1 value1 [field2 value2 ...] : 将多个field-value键值对存储到key对于的哈希表中
- hsetnx key filed value : 只有当哈希表key中的filed字段不存在时,才设置filed字段的值为value
- hget key filed : 获取哈希表key中的filed字段的值
- hgetall key : 获取哈希表key中所有字段和字段值
- hdel key filed : 删除哈希表key中的field字段
- hkeys key : 获取哈希表key中所有的字段名
- hvals key : 获取哈希表key中所有的字段值
- hlen key : 获取哈希表key中的filed数量
- hexists key filed : 判断哈希表中是否存在field字段
- hincrby key filed increment : 将哈希表key中的filed字段加上一个增量值increment
- hscan key cursor [MATCH pattern] [COUNT count] : 迭代哈希表中的键值对
5. Redis Sets
Redis Set 是无序的字符串集合,不允许出现重复元素
Redis Set 的基本操作指令:
- sadd key member1 [member] : 向集合中添加一个或多个成员
- sismenber key value : 判断value是否是集合key中的成员
- scard key : 获取即可key中的元素个数
- sdiff key1 [key2...] : 返回第一个集合与其他集合不同的成员
- sdiffstore destination key1 [key2...] : 返回第一个集合去其他集合不用的成员,并存储在集合 destination中
- sinter key1 [key2...] : 返回集合之间的交集
- sinterstore destination key1 [key2...] : 返回集合之间的交集,并存储在集合destination中
- smembers key : 获取集合中的所有成员
- smove source destination member : 将集合source中的成员member移动到集合destination
- spop key [count] : 随机返回集合key中的一个或多个成员,并删除
- srandmember key [count] : 随机返回集合key中的一个或多个成员
- srem key member [member ...] : 删除集合key中指定(可以是一个或多个)的成员
- sunion key1 [key2 ...] : 返回多个集合的并集
- sunionstore destination key1 [key2 ...] : 返回多个集合的并集,并存储在destination集合中
- sscan key cursor [MATCH pattern] [COUNT count] : 迭代集合中的元素
6. Redis Sorted Sets
Redis Sorted Sets 是有序的字符串集合,不允许重复的元素,类似于Redis Set 和 Redis Hash 的一种混合。每一个Redis Sorted Sets的元素都会关联一个浮点数,叫做score,Redis根据score值的大小来进行排序。
Redis Sorted Sets 基本操作指令:
- zadd key score1 value1 [score2 value2 ...] : 添加一个或多个元素到集合key
- zcard key : 获取有序集合key中的元素个数
- zcount key min max : 计算指定分数区间内的元素个数
- zincrby key increment member : 将有序集合key中的元素member的分数加上increment
- zinterstore destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX] : 计算多个有序集合中交集并存储到有序集合destination中
- zscore key member : 获取有序集合key中的成员member的分数
- zrange key start stop [WITHSCORES] : 获取有序集合key指定范围内的成员(zrange key 0 -1 withscores 遍历集合key)
- zrank key member : 返回有序集合key中成员member的索引
- zrem key member : 删除有序集合key中的成员member
- zrevrange key start stop [WITHSCORES] : 获取有序集合key指定范围内的成员(按照从高到低的顺序)
- zunionstore destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX] : 将多个有序集合的并集存储到新的有序集合destination中
- zscan key cursor [MATCH pattern] [COUNT count] : 迭代有序集合key
最后
Redis 基础知识就先总结到这里,其他的知识点等用到了再去深入研究
标题:Redis学习笔记(一)Redis基础知识
作者:marshalby2
地址:http://www.yunxincoder.cn/articles/2020/10/11/1602422843813.html