redis基本使用教程
2022/2/22 2:23:48
本文主要是介绍redis基本使用教程,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
redis基本技术总结
1 redis 简介
基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库
redis是一个高性能的key-value存储系统。它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sortedset--有序集合)和hash(哈希类型)
存储值类型:
- string
- list
- set
- zset
- hash
1.1 nosql 与 sql 区别
1.1.1 存储方式
-
sql: 数据存储在表结构中,需要先定义表和字段结构才能存储数据。
-
nosql:存储的数据格式可以是json、hash等键值对, 不需要定义表,随时可以存储
1.1.2 join查询
-
sql: 支持join操作、使用一条SQL语句可以关联多张表将数据查询出来
-
nosql:不支持SQL语句,更不支持join操作
1.1.3 数据耦合性
-
sql: SQL 中不允许删除已经被使用的外部数据以保证数据完整性,数据耦合性高
-
nosql:没有强耦合的概念,数据可以随时删除
1.1.4 事务
-
sql: SQL具有事务的概念,如果对多张表数据进行更新操作,要么都成功,要么回退数据不更改。
-
nosql:nosql没有事务概念,数据的操作都是原子级的
1.1.5 查询性能
在相同水平的系统设计的前提下, 因为 NoSQL 中省略了 JOIN 查询的消耗, 故理论上性能上是优于 SQL 的
1.2 Redis 优势
- 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
- 丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
- 原子 – Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。
- 丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。
2 redis 基本操作
2.1 string (重点)
2.1.1 添加修改数据
# 添加一个值 set key value # 添加多个 mset key1 value1 key2 value2
2.1.2 获取数据
# 获取一个 get key # 获取多个值 mget key1 key2
2.1.3 删除
# 删除值 del key
2.1.4 获取字符串的长度
strlen key
2.1.5 追加信息到原字符串之后
append key value
2.1.6 incr , incrby和 incrbyfloat
# 数值 + 1, 每次只增加1 incr key # 指定 数值增加10, 只能增加整数值 incrby key 10 # 指定数值增加10.5, 可以增加整数或小数 incrbyfloat key 10.5
2.1.7 decr , decrby
# 数值 - 1, 每次只能减1 decr key # 指定 数值减去10, 只能减整数值 decrby key 10
2.1.8 设置数据有效期
为指定的 key 设置值及其过期时间。如果 key 已经存在, SETEX 命令将会替换旧的值
# 格式: setex key seconds value # 设置 code=3920且有效期等于60s的数据 setex code 60 3920 # 查看有效时期 ttl code
2.1.9 查看字段
keys *
2.2 哈希(Hash)
hash 是一个 string 类型的 field(字段) 和 value(值) 的映射表,hash 特别适合用于存储对象。
Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)
2.2.1 hset 和 hset
-
增加修改数据
格式:
hset key field value
格式:
hmset key field value
# 添加一个hash数据 hset user name "张三" # 会覆盖name字段值 hmset user name "lisi" name "wangwu" # 添加多了字段 hset user age 20 hight 175
2.2.2 hget和hmget
-
查看字段
格式:
hget key field
格式:
hmget key field
# 查看一个字段值 hget user name # 查看多个字段值 hmget user name age hight
2.2.3 hlen和hexists
-
查看hash表中字段的数量
格式:
hlen key
hlen user
-
hash表中是否存在指定的字段
格式:
hexists key field
hexists user gender
2.2.4 hkeys和hvals
-
查看hash表中的字段和值
格式:
hkeys key
格式:
hvals key
# 查看hash表中的所有字段 hkeys user # 查看hash表中的所有值 hvals user
格式:
hgetall key
hgetall user
2.2.5 hincrby和 hincrbyfloat
格式:hincrby key field incrment
格式:hincrbyfloat key field incrment
# 指定 数值增加10, 只能增加整数值 hincrby user age 1 # 指定数值增加10.5, 可以增加整数或小数 hincrbyfloat user age 1.5
2.2.6 hsetnx 命令
hsetnx 命令用于为哈希表中不存在的的字段赋值
# 格式: hsetnx key field value hsetnx user gender nan
2.3 列表(list)
Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)
2.3.1 添加数据
格式:
lpush key vuale1 value2 或 rpush key vuale1 value2
# 从左边添加一个或多个数据 lpush list1 1 2 3 4 5 6 # 从尾部添加一个或多个数据 rpush list2 1 2 3 4 5 6
2.3.2 查看数据
格式: lrange key start stop
格式: lindex key index
格式: llen key
# 通过索引范围查看数据 lrange list2 0 -1 # 查看指定索引位置的数据 lindex list2 0 # 查看list 的长度 llen list2
2.3.3 获取并删除数据
格式: lpop key 或 rpop key
2.3.4 规定时内获取并删除数据
格式: blpop key 或 brpop key
2.3.5 lrem 删除命令
格式: lrem key count value
count 的值可以是以下几种:
- count > 0 : 从表头开始向表尾搜索,移除与 VALUE 相等的元素,数量为 count 。
- count < 0 : 从表尾开始向表头搜索,移除与 VALUE 相等的元素,数量为 count 的绝对值。
- count = 0 : 移除表中所有与 VALUE 相等的值。
2.4 集合(set)
Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。
Redis 中集合是通过哈希表实现的。
-
添加数据
格式: sadd key member [member ...]
# 添加集合成员 sadd city beijing shanghai xian tianjin wuhan zhengzhou
-
获取数据
格式: smembers key
-
删除成员
格式: srem key member [member ...]
srem city beijing
-
查看集合成员数量
格式: scard key
scard city
-
判断是否是集合中的成员
格式:
sismember key member
sismember city beijing
-
随机获取指定数量的成员数据
格式:
srandmember key count
# 随机获取2个成员数据 srandmember city 2
-
随机获取集合中的成员数据并删除该数据
格式:
spop key
spop city
-
交集,并集,差集
格式:
sinter key1 [key2]
交集格式:
sunion key1 [key2]
并集格式:
sdiff key1 [key2]
差集 -
将两个交集,并集,差集的结果集存储到指定集合中
格式:
sinterstore destination key1 [key2]
交集格式:
sunionstore destination key1 [key2]
并集格式:
sdiffstore destination key1 [key2]
差集 -
将指定元素从原集合移动到目标集合中
格式:
smove source destination member
# 将集合成员1从集合set5中移动到集合set6中 smove set5 set6 1
2.5 有序集合(sorted set)
Redis 有序集合和集合一样也是 string 类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个 double 类型的分数。redis 正是通过分数来为集合中的成员进行从小到大的排序。
有序集合的成员是唯一的,但分数(score)却可以重复
-
添加数据
格式:
zadd key score1 member1 [score2 member2 ...]
# 添加数据 zadd zset1 10 ls # 添加多个数据 zadd zset1 10 ww 30 zs 25 zl
-
获取有序集合中的数据
格式:
zrange key start stop [withscores]
或zrevrange key start stop [withscores]
zrange 和 zrevrange 互为逆序
zrange zset1 0 -1 withscores zrevrange zset1 0 -1 withscores
-
删除数据
格式:
zrem key member [member]
-
按条件查询
格式:
zrangebyscore key min max [WITHSCORES] [LIMIT offset count]
格式:
zrevrangebyscore key min max [WITHSCORES] [LIMIT offset count]
备注: min和max 查询条件范围,指向的是有序集合排序的数值
-
按条件删除
格式:
zremrangebyrank key start stop
格式:
zremrangebyscore key min max
备注: min和max 查询条件范围,指向的是有序集合排序的数值;start 和 stop作用于索引
-
获取有序集合中的数量
格式:
zcard key
格式:
zcount key min max
-
有序集合的交集和并集
格式:
zinterstore destination numkeys key [key ...]
格式:
zunionstore destination numkeys key [key ...]
备注: 类似无序集合的操作, numkeys 含义是表示后面有几个集合进行操作
-
获取数据对应的索引
格式:
zrank key member
格式:
zrevrank key member
-
score值的获取与修改
格式:
zscore key member
格式:
zincrby key increment member
3 redis key基本指令
3.1 删除key
del key
3.2 判断key是否存在
exists key
3.2 获取key所储存的值的类型
type key
3.3 设置key的有效期
# 设置过期时间,以秒计 expire key seconds # 设置过期时间,以毫秒计 pexpire key milliseconds # 设置过期时间的时间戳,以秒计 expireat key timestamp # 设置过期时间的时间戳,以毫秒计 pexpireat key milli-timestamp # 移除 key 的过期时间,key 将持久保持 persist key
3.4 查看剩余的过期时间
-
ttl key
: 以秒为单位,返回给定 key 的剩余生存时间 -
pttl key
: 以毫秒为单位,返回给定 key 的剩余生存时间
3.5 查找所有符合给定模式( pattern)的 key
-
keys pattern
- 匹配规则:
- * 匹配0或多个任意字符
- ? 匹配一个任意字符
- [] 匹配一个指定的字符
- 匹配规则:
3.6 修改key的名称
# 修改key的名称,新的名称存在,则值就会被覆盖 rename key newkey # 修改key的名称,仅当 newkey 不存在时,将 key 改名为 newkey renamenx key newkey
3.7 切换数据库
select index
3.8 数据移动
# 将数据移动到其他库中 move key db
3.9 数据清理
- 查看数据量:
dbsize
- 清理当前数据库数据:
flushdb
- 清理所有数据:
flushall
这篇关于redis基本使用教程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-08阿里云Redis项目实战入门教程
- 2024-11-08阿里云Redis资料:新手入门与初级使用指南
- 2024-11-08阿里云Redis教程:新手入门及实用指南
- 2024-11-07阿里云Redis学习入门:新手必读指南
- 2024-11-07阿里云Redis学习入门:从零开始的操作指南
- 2024-11-07阿里云Redis学习:初学者指南
- 2024-11-06阿里云Redis入门教程:轻松搭建与使用指南
- 2024-11-02Redis项目实战:新手入门教程
- 2024-10-22Redis入门教程:轻松掌握数据存储与操作
- 2024-10-22Redis缓存入门教程:快速掌握Redis缓存基础知识