Redis(三)--Redis的基本命令

您好,我是码农飞哥,感谢您阅读本文,欢迎一键三连哦
💪🏻 1. Python基础专栏,基础知识一网打尽,9.9元买不了吃亏,买不了上当。 Python从入门到精通
❤️ 2. Python爬虫专栏,系统性的学习爬虫的知识点。9.9元买不了吃亏,买不了上当,持续更新中 。python爬虫入门进阶
❤️ 3. Ceph实战,从原理到实战应有尽有。 Ceph实战
❤️ 4. Java高并发编程入门,打卡学习Java高并发。 Java高并发编程入门
😁 5. 社区逛一逛,周周有福利,周周有惊喜。码农飞哥社区,飞跃计划
全网同名【码农飞哥】欢迎关注,个人VX: wei158556

前言

这一篇文章我们主要是来整理下Redis的一些常用命令。

基本命令

  1. 启动Redis
 ./src/redis-server redis.conf
  1. 连接Redis数据库
 ./src/redis-cli -h 127.0.0.1 -p 6379
  1. 切换数据库
    redis中有16个数据库,分别是0~15库,默认操作的是0库,如果要切换数据库的话可以通过select命令切换。
select [dbId]
#切换到1库
select 1
  1. 查看当前数据库的key的数量
dbsize

在这里插入图片描述

  1. 清空当前库
flushdb
  1. 判断某个key是否存在
exists key
  1. 查看你的key是什么类型
type key
  1. 为给定的key设置过期时间
expire key seconds
#指定名为username的键的过期时间是10秒
例如:expire username 10
  1. 查看还有多少秒过期,-1表示永不过期,-2表示已过期
ttl key

在这里插入图片描述

字符串相关的操作命令

String 数据类型主要用在做缓存,计数器,分布式锁,分布式ID等等

  1. 设置一个字符串类型的值
 set key value
 例如: set testkey testvalue
  1. 获取字符串的值
 get key
 例如:get testkey

在这里插入图片描述
5. 删除指定的key的值

del key
例如:del testkey
  1. 不存在就插入(not exists),
    存在的话就不会插入,这是Redis做分布式锁的基础命令
  setnx key value
  例如:127.0.0.1:6379> setnx username zhangsan
(integer) 1
  1. 递增
incr key
incrby key increment 
例如:127.0.0.1:6379> incr age
  1. 递减
decr key  
decrby key decrement
例如:
127.0.0.1:6379> decr age
(integer) 1
127.0.0.1:6379> decrby age 3
(integer) -2

hash(哈希)

Redis hash 是一个键值对集合,Redis hash是一个String类型的field和value的映射表,hash特别适合存储对象,例如SpringSession中的session信息,存储用户信息,用户主页访问量等等。
6. 设置单个field值

hset key field value
例如:HSET company:1 companyname  alibaba
  1. 设置多个field值
hmset key field1 value1 [field2 value2 field3 value3 ......fieldn valuen]
例如:HMSET user:1 username zhangsna age 12
  1. 返回key中的field域的值
HGET key field
例如:
127.0.0.1:6379> HGET company:1 companyname
"alibaba"
  1. 返回key中的field1,field2,fieldN域的值
hmget key field1 field2 fieldN
例如:
127.0.0.1:6379> HMGET user:1 username age
1) "zhangsna"
2) "12"

  1. 返回key中,所有的域与其值
hgetall key
例如:
127.0.0.1:6379> HGETALL user:1
1) "username"
2) "zhangsna"
3) "age"
4) "12"
  1. 删除键
hdel key field[field ....]
例如:127.0.0.1:6379> hdel company:1 companyname
(integer) 1

list列表

字符串列表,按照插入顺序,添加一个元素到列表的头部(左边)或者尾部(右边),可以用于微博关注人,微博时间轴列表
充当队列的原理
左侧入队列

stringRedisTemplate.opsForList().leftPush(key, value)

右侧出队列

stringRedisTemplate.opsForList().rightPop(key)
  1. 将一个或多个值插入到列表头部
lpush key value1 [value2] 
例如:127.0.0.1:6379> lpush order 111 222
(integer) 2

  1. 获取列表指定范围内的数据
lrange key start stop 
例如:127.0.0.1:6379> lrange order 0 1
1) "222"
2) "111"

  1. 移除列表元素
lrem key count value 
例如:127.0.0.1:6379> lrem order 1 111
(integer) 1
  1. 通过索引设置元素列表的值
lset key index value 
例如:127.0.0.1:6379> lset order 0 123
OK
  1. 移除并获取列表最后一个元素
rpop key
例如:127.0.0.1:6379> rpop order
"123"
  1. 在列表尾部添加一个或者多个元素
rpush key value1 [value2] 
例如:127.0.0.1:6379> rpush student zhangsan lisi wanger
(integer) 3

set 集合

set 集合是String类型的无序集合,集合是通过哈希表实现的。所以添加,删除,查找的复杂度都是O(1)。set 集合一般用于,赞,踩,标签等场景
18. 添加一个元素到集合中(集合中的元素无序并且唯一)

sadd key member [member ...]
例如: 127.0.0.1:6379> sadd myset test
(integer) 1
  1. 查看集合中所有的元素
smembers key
例如:127.0.0.1:6379> smembers myset
1) "test"
  1. 删除结点中指定的元素
srem key member [member ...]
例如:127.0.0.1:6379> srem myset test
(integer) 1

  1. scard: 返回集合元素的数量
scard key
例如:127.0.0.1:6379> scard key
(integer) 0

  1. smove: 将一个集合的元素转移到另一个集合中
smove source destionation member
例如:
127.0.0.1:6379> smembers myset
1) "test1"
127.0.0.1:6379> smembers myset1
(empty list or set)
127.0.0.1:6379> smove myset myset1 test1
(integer) 1
127.0.0.1:6379> smembers myset1
1) "test1"

zset(有序集合)

Redis zset和set一样也是String类型元素的集合,且不允许重复的成员,不同的是每个元素都会关联一个double类型的分数,redis正是通过分数来为集合中的成员进行从小到大的排序的。
23. ZADD: 添加多个元素到有序集合中

ZADD key [NX|XX] [CH] [INCR] score member [score member ...]
例如:127.0.0.1:6379> ZADD city:gdp 95 "beijing" 92 "shanghai" 89 "shengzhen"
(integer) 3

  1. ZINCRBY: 为分数值加上增量
ZINCRBY key increment member
例如:127.0.0.1:6379> zincrby city:gdp 3 "beijing"
"98"
  1. ZCARD:获取有序集合中的元素数量
ZCARD key
例如:127.0.0.1:6379> ZCARD city:gdp
(integer) 3

  1. ZCOUNT: 获取在分数区间内的元素数量
zcount key min max
例如:127.0.0.1:6379>  zcount city:gdp 90 99
(integer) 2

  1. ZREM: 删除有序集合中的多个元素
  ZREM key member [member ..]
  例如:127.0.0.1:6379> zrem city:gdp "beijing"
(integer) 1

排序

  1. sort 排序
sort mylist
例如:
127.0.0.1:6379> lpush mylist 1 2 3 4
(integer) 4
127.0.0.1:6379> lpush mylist 1 2 3 4 12 10 9
(integer) 11
127.0.0.1:6379> sort mylist
 1) "1"
 2) "1"
 3) "2"
 4) "2"
 5) "3"
 6) "3"
 7) "4"
 8) "4"
 9) "9"
10) "10"
11) "12"

  1. 字母排序
sort mylist alpha desc limit 0 2

总结

本文主要介绍了Redis中各种常见的命令,Redis 有五种数据类型,每种数据类型都有不同的操作命令。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农飞哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值