Redis实战精讲(2)

视频链接:https://www.bilibili.com/video/BV1Uz4y1X72A
视频选集:P10

1.基本知识

指令含义
redis-benchmark测试redis服务的性能【可以在任意目录下执行】
ping查看redis服务是否正常进行【输入ping , redis返回PONG,表示redis 服务运行正常】
info查看redis服务器的所有统计信息
info 信息段查看redis服务器的指定的统计信息 如:info Replication
select index切换数据库实例 如:select 0
dbsize查看当前数据库实例中所有key的数量
keys *查看当前数据库实例中所有的key
flushdb清空数据库实例
flushall清空所有的数据库实例
config get *查看redis中所有的配置信息
config get 参数名查看redis中指定的配置信息

2.redis的数据库实例

  • 作用类似于mysql的数据库实例,redis中的数据库实例只能由redis服务来创建和维护,开发人员不能修改和自行创建数据库实例
  • 默认情况下,redis会自动创建16个数据库实例,并且给这些数据库实例进行编号,从0开始一直到15,使用时通过编号来使用数据库
  • 可以通过配置文件,指定redis自动创建的数据库个数
  • redis的每一个数据库实例本身占用的存储空间是很少的,所以也不造成存储空间的太多浪费
  • 默认情况下,redis客户端连接的是编号是0的数据库实例

3.Redis的5种数据结构

程序是用来处理数据的,Redis是用来存储数据的;程序处理完的数据要存储到redis中,不同特点的数据要存储在Redis中不同类型的数据结构中。

数据结构类型举例
string单key:单valueusername:zhangsan age:20
list单key:多有序value【根据存储放的位置排序】contacts:1315431,xxx,xxx
set单key:多无序valuecity:beijing sh cq tj
hash单key:对象(属性:值)student: id:1001,name:zhangsan,age:20
zset单key:多有序value【根据分数从小到大排序】city: 1200 cq,1000 tj,2000 bj,1500 sh

4.Redis的常用操作命令

4.1 关于key的操作命令

4.1.1 keys

语法:keys pattern
作用:查找所有符合模式pattern【可以使用通配符】的key.

通配符内容举例
*表示0或多个字符keys * 查询所有的key
?表示单个字符wo?d 匹配 word wood
[ ]表示选择[ ]内的一个字符wo[or]d 匹配 word,wood, 不匹配 wold,woord

4.1.2 exists

语法1:exists key
返回:如果存在返回1,不存在返回0

语法2:exists key1 key2 key3 …
返回:存在的key的数量

4.1.3 move

语法:move key index
作用:移动指定key到指定的数据库实例

4.1.4 ttl(time to live)

语法:ttl key
作用:查看指定的key的剩余生存时间【如果key不存在,返回-2;如果没有设置生存时间,返回-1,永远不过期】

4.1.5 expire

语法:expire key 数值(单位 秒)
作用:设置key的最大生存时间

4.1.6 type

语法:type key
作用:查看指定key的数据类型

4.1.7 rename

语法:rename key newkey
作用:对key重命名

4.1.8 del

语法:del key1,key2,key3,…
作用:删除指定的key,返回值是实际删除的key的数量

4.2 关于字符串类型数据的操作命令

4.2.1 set

语法:set 键 值
作用:将string类型的数据设置到redis中

注意:如果key已经存在,则后来的value会把以前的value覆盖掉.

4.2.2 get

语法:get key
作用:从redis中获取string类型的数据

4.2.3 append

语法:append key value
作用:追加字符串 【返回追加后的字符串长度】
注意:如果key不存在,则新创建一个key,并且把value值设置为value.

4.2.4 strlen

语法:strlen key
作用:获取字符串数据的长度

4.2.5 incr

语法:incr key
作用:将字符串数值进行加1运算
注意
1.返回加1运算之后的数据
2.如果key不存在,首先设置一个key,值初始化为0,然后进行incr运算
3.要求key所表示的value必须是数值,否则报错

4.2.6 decr

语法:decr key
作用:将字符串数值进行减1运算
注意:同incr

4.2.7 offset

语法:incrby key offset
作用:将字符串数值进行加offset运算
注意:同incr

语法:decr key offset
作用:将字符串数值进行减offset运算
注意:同incr

4.2.8 getrange

语法:getrange key startIndex endIndex
作用:闭区间获取字符串key中从startIndex到endIndex的子字符串

注意
1.下标自左向右,从0开始,依次往后,最后一个字符的下标是字符串长度-1.【两端为闭区间】
2.字符串中每一个下标也可以是负数,负下标表示自右至左,从-1开始,依次往前,最右边一个字符的下标是-1

4.2.9 setrange

语法:setrange key startIndex value
作用:用value覆盖从下标为startIndex开始的子字符串,能覆盖几个字符就覆盖几个字符

4.2.10 setex

语法:setex key seconds value
作用:设置字符串数据的同时,设置它最大生命周期

4.2.11 setnx(not exist)

语法:setnx key value
作用:设置string类型的数据value到redis数据库中,当key不存在时设置成功,否则,则放弃设置

4.2.12 mset

语法:mset key1 value1 key2 value2 key3 value3…
作用:批量将string类型的数据设置到redis中

4.2.13 mget

语法:mget key1 key2 key3 …
作用:批量从redis中获取string类型的数据

4.2.14 msetnx

语法:msetnx key1 value1 key2 value2 key3 value3…
作用:批量设置string类型的数据value到redis数据库中,当所有key都不存在时设置成功,否则(只要有一个已经存在),则放弃设置

4.3 关于列表类型数据的操作命令

4.3.1 lpush

语法:lpush key value1 value2 value3 …
作用:将一个或者多个值依次插入到列表的表头(左侧)
例如:lpush list 1 2 3 结果为:3 2 1

4.3.2 lrange

语法:lrange key startIndex endIndex
作用:获取指定列表中的指定下标区间的元素

4.3.3 rpush

语法:rpush key value1 value2 value3 …
作用:将一个或者多个值依次插入到列表的表尾(右侧)

4.3.4 lpop

语法:lpop key
作用:从指定列表中移除并返回被移除的表头元素

4.3.5 rpop

语法:rpop key
作用:从指定列表中移除并返回被移除的表尾元素

4.3.6 lindex

语法:lindex key index
作用:获取列表中指定下标的元素

4.3.7 llen(list len)

语法:llen key
作用:获取指定列表的长度

4.3.8 lrem

语法:lrem key count value
作用:根据count值移除指定列表中和value相等的数据
注意
1.count > 0 从列表的左侧移除count个跟value相等的数据
2.count < 0 从列表的右侧移除count个跟value相等的数据
3.count = 0 从列表中移除所有跟value相等的数据

4.4 关于集合类型数据的操作命令

  • 单key-多无序value
  • 一个key对应多个vlaue
  • value之间没有顺序,并且不能重复
  • 通过业务数据直接操作集合

4.4.1 sadd

语法:sadd key value1 value2 value3 …
作用:将一个或者多个元素添加到指定的集合中
注意:如果元素已经存在,则会忽略

4.4.2 smembers

语法:smembers key
作用:获取指定集合中所有的元素

4.4.3 sismember

语法:sismember key member
作用:判断指定元素在指定集合中是否存在
注意:存在返回1 ,不存在返回0

4.4.4 scard

语法:scard key
作用:获取指定集合的长度

4.4.5 srem

语法:srem key member1 member2 member3…
作用:移除指定集合中一个或者多个元素
注意:不存在的元素会被忽略;返回成功移除的个数

4.4.6 srandmember

语法:srandmember key count
作用:随机获取指定集合中的一个或者多个元素
注意
1.count > 0 随机获取的多个元素之间不能重复
2.count < 0 随机获取的多个元素之间可能重复

4.4.7 spop

语法:spop key count
作用:从指定集合中随机移除一个或者多个元素

4.4.8 smove

语法:smove source dest member
作用:从指定集合中的指定元素移动到另一个元素

4.4.9 sdiff 【差集】

语法:sdiff key key1 key2 key3…
作用:获取一个集合中有,但是其他集合中都没有的元素组成的新集合

4.4.10 sinter【交集】

语法:sinter key1 key2 key3…
作用:获取所有指定集合中都有的元素组成的新集合

4.4.11 sunion【并集】

语法:sunion key1 key2 key3…
作用:获取所有指定集合中所有元素组成的大集合

4.5 关于哈希类型数据的操作命令

Redis 的 hash是一个string类型的 key和 value的映射表,这里的value是一系列的键值对,hash 特别适合用于存储对象。

4.5.1 hset

语法:hset key field1 value1 field2 value2 field3 value3 …
作用:将一个或者多个field-value对设置到哈希表中
注意:如果key field已经存在,新的value会把以前的值覆盖掉

4.5.2 hget

语法:hget key field
作用:获取指定哈希表中指定field的值

4.5.3 hmset

语法:hmset key field1 value1 field2 value2 field3 value3 …
作用:批量将多个field-value对设置到哈希表中
注意:不用这个hmset用hset也可以

4.5.4 hmget

语法:hmget key field1 field2 field3
作用:批量获取指定哈希表中指定field的值

4.5.5 hgetall

语法:hgetall key
作用:获取指定哈希表中所有的field和value

4.5.6 hdel

语法:hdel key field1 field2 field3 field4…
作用:从指定哈希表中删除一个或者多个field

4.5.7 hlen

语法:hlen key
作用:获取指定哈希表中所有的filed个数

4.5.8 hexists

语法:hexists key field
作用:判断指定哈希表中是否存在某一个field
注意:存在返回1 不存在返回0

4.5.9 hkeys

语法:hkeys key
作用:获取指定哈希表中所有的field列表

4.5.10 hvals

语法:hvals key
作用:获取指定哈希表中所有的value列表

4.5.11 hincrby

语法:hincrby key field int
作用:对指定哈希表中指定field值进行整数加法运算
例如:hincrby stu1001 age 5

4.5.12 hincrbyfloat

语法:hincrbyfloat key field float
作用:对指定哈希表中指定field值进行浮点数加法运算

4.5.13 hsetnx

语法:hsetnx key field value
作用:将一个field-value对设置到哈希表中,当field-value已经存在时,则放弃设置,否则设置field-value

4.6 关于有序集合类型数据的操作命令

Redis有序集合zset和集合set一样也是string类型元素的集合,且不允许重复的成员。
不同的是 zset的每个元素都会关联一个分数(分数可以重复),redis通过分数来为集合中的成员进行从小到大的排序。

4.6.1 zadd

语法:zadd key score1 member1 score2 member2 score3 member3 …
作用:将一个或者多个member及其score值加入有序集合
注意:如果元素存在,则把分数覆盖

4.6.2 zrange

语法:zrange key startIndex endIndex 【withscores】
作用:获取指定有序集合中指定下标区间的元素

4.6.3 zrangebyscore

语法:zrangebyscore key min max 【withscores】
作用:获取指定有序集合中指定分数区间(闭区间)的元素

4.6.4 zrem

语法:zrem key member1 member2 member3…
作用:删除指定有序集合中一个或者多个元素

4.6.5 zcard

语法:zcard key
作用:获取指定有序集合中所有元素的个数

4.6.6 zcount

语法:zcount key min max
作用:获取指定有序集合中分数在指定区间内的元素的个数

4.6.7 zrank

语法:zrank key member
作用:获取指定有序集合中指定元素的排名(排名从0开始)

4.6.8 zscore

语法:zscore key member
作用:获取指定有序集合中指定元素的分数

4.6.9 zrevrank

语法:zrevrank key member
作用:获取指定有序集合中指定元素的排名(按照分数从大到小的排名)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值