Redis基本操作


title: Redis基本操作
categories: [Redis]
tags: [数据库]
date: 2020/01/06

作者:hackett

微信公众号:加班猿

 

一、redis基本数据类型

  • redis保存的数据都是按照键值对来保存

  • 键(key)

  • 值(value)

  • 键的数据类型都是字符串

  • 值的类型有以下五种:

    1. 字符串(string)

    2. 哈希(hash)

    3. 列表(list)

    4. 无序集合(set)

    5. 有序集合(zset)

二、字符串(string)

添加修改字符串

  • set 键 值

    1. 如果键不存在,就是添加

    2. 如果键存在,就是修改

 set user tom
 # 添加一个键user值为tom
 set user hackett
 # 把user的值改为hackett
  • setex 键 过期时间 值

    1. 过期时间单位为秒

 setex user 5 jerry
 # 添加一个键user值为jerry,过期时间为5秒
  • 添加多个键值对 -- mset 键1 值1 键2 值2 键3 值3 ......

 mset user1 tom user2 hackett user3 jerry
 # 同时添加3个键值对
  • 已有值后面追加 -- append 键 值

 append user1 haha
 # 向user1中追加值 haha

获取值

  • get 键

 get user
 # 获取user的值
  • mget 键1 键2 键3 ......

 mget user1 user2 user3
 # 获取3个键的值

删除键

  • del 键1 键2 键3

 del user1 user2 user3
 # 删除3个键

三、键命令

查找键

  • keys 键名

  • 可以支持 *

 keys user1
 # 查看键user1是否存在
 keys *
 # 查看所有键

判断键是否存在

  • exists 键

  1. 如果存在,返回1

  2. 如果不存在,返回0

exists user1
# 判断user1是否存在

查看对应键的value类型

  • type 键

type user1
# 查看user1对应的值的类型

设置已有键的过期时间

  • expire 键 秒数

expire user1 5
# 设置user1的过期时间为5s

查看键过期时间

  • ttl 键

  1. 返回0,代表有效时间,单位:秒

  2. 返回-1,代表永远有效

  3. 返回-2,代表键不存在

ttl key
# 查看key的有效时间

四、哈希hash

添加值

  • hset 键 字段 值

hset user1 name tom
# 增加一个hash类型的键值对,字段为name,值为tom

添加多个值

  • hmset 键 字段1 值1 字段2 值2 ......

hmset user2 name jerry sex female
# 添加user2的键,字段有两个

获取字段

  • hkeys 键

  1. 获取制定键的所有字段名

hkeys user2
# 获取键user2的所有字段

获取字段对应的值

  • hget 键 字段

hget user2 sex
# 获取user2键字段sex的值

获取多个字段的值

  • hmget 键 字段1 字段2

hmget user2 name sex
# 获取user2键字段name,sex的值

获取键所有字段的值

  • hvals 键

hvals user2
# 获取user2所有字段的值

获取键所有字段和值

  • hgetall 键

hgetall user2
# 获取user2的字段和值

删除字段

  • hdel 键 字段

hdel user2 sex
# 删除user2的sex字段

删除键

  • hdel 键

hdel user2
# 删除user2的键

五、列表list

添加值

  • lpush 键 值1 值2 ......

  1. 从列表左侧添加值

lpush luser1 tom
# 新建一个luser1的键,在左侧添加tom的值 值:tom
  • rpush 键 值1 值2 ......

  1. 从列表右侧添加值

rpush luser1 jerry
# 新建一个luser1的键,在右侧添加tom的值 值:tomjerry

插入值

  • linsert 键 before 或者 after 值 新值

  1. 在制定的值前面或者后面插入新值

linsert luser1 before jerry 11
# 在jerry前面插入新值11 值:tom11jerry
linsert luser1 after jerry 22
# 在jerry后面插入新值22 值:tom11jerry22

获取

  • lrange 键 start stop (返回列表里指定范围的值)

  1. 索引从左侧开始,第一个值的索引为0

  2. 索引可以是负数,表示从尾部开始计数,如:-1代表最后一个值,-2代表倒数第二个值

  3. start,stop为要获取值的索引

lrange luser1 0 -1
# 获取开始到结尾的值
lrange luser1 2 -1
# 获取从第三个到最后的值

修改

  • lset 键 索引 值

  1. 改指定索引的值

lset luser1 1 haha
# 把第二个元素的值改为haha

删除值

  • lrem 键 count 值

  1. count = 0 删除指定的所有值

  2. count < 0 删除从右往左指定数量的值

  3. count > 0 删除从左往右指定数量的值

lrem luser2 -1 h0
# 从后往前/从右往左,删除第一个h0
lrem luser2 0 h0
# 删除所有的h0

六、无序集合set

添加值

  • sadd 键 值1 值2 值3 ......

sadd suser aa bb cc
# 给键suser添加三个值

获取值

  • smembers 键

  1. 获取集合的值

smembers suser
# 获取键suser所有的值

删除值

  • srem 键 值

  1. 删除指定的值

srem suser aa
# 删除键suser的值aa

七、有序集合zset

添加值

  • zadd 键 score1 值1 score2 值2

  1. 添加值

zadd zuser 1 aa 3 bb 2 cc 5 dd
# 给键zuser添加4个值,并按照score从小到大自动排序 值:aaccbbdd

获取值

  • zrange 键 start stop [withscores]

  1. start 从 0开始

  2. 最后一个索引为-1

  3. withscores代表同时获取score

zrange zuser 0 -1 withscores
# 获取键zuser的所有值

通过score获取值

  • zrangebyscore 键 min max

  1. min代表score起始值

  2. max代表score结束值

zrangebyscore zuser 2 6
# 获取score从2到6的值

通过值获取score

  • zscore 键 值

  1. 得到指定值的score

zscore zuser dd
# 得到值dd的score

删除

  • zrem 键 值

  1. 删除指定的值

zrem zuser dd
# 删除值dd

通过score删除值

  • zremrangebyscore 键 min max

  1. min是要删除score的最小值

  2. max是要删除score的最大值

zremrangebyscore zuser 0 10
# 删除score从0到10到值

如果你觉得文章还不错,记得"点赞关注"

关注我的微信公众号【 加班猿 】可以获取更多内容

 

posted @ 2021-01-06 22:52  hackettt  阅读(36)  评论(0编辑  收藏  举报