Redis_基本指令操作


一、 String类型

1) 赋值_单个

语法: SET key value

192.168.77.130:6379> set c1 10
OK

2) 取值_单个

语法:GET key

192.168.77.130:6379> get c1
"10"

3)赋值_多个

语法: MSET key value [key value …]

192.168.77.130:6379> mset c1 10 c2 11 c3 13
OK

4) 取值_多个

语法: MGET key [key …]

192.168.77.130:6379> mget c1 c2 c3
1) "10"
2) "11"
3) "13"

5)删除_key

语法:DEL key

192.168.77.130:6379> del c3
(integer) 1
递增递减条件:字符串是整数

6)递增_单个

语法: INCR key

192.168.77.130:6379> incr c1
(integer) 11

7)递减_单个

语法: DECR key

192.168.77.130:6379> decr c1
(integer) 10

8)递增_多个

语法: INCRBY key increment

192.168.77.130:6379> incrby c1 2
(integer) 12

9)递减_多个

语法:DECRBY key decrement

192.168.77.130:6379> decrby c1 2
(integer) 10

二、 Hash散列类型

hash叫散列类型,它提供了字段和字段值的映射字段值只能是字符串类型,不支持散列类型、集合类

型等其它类型。相当于是对象格式的存储。

1) 赋值_单个字段

语法: HSET key field value

设置一个字段值, HSET命令不区分插入和更新操作,当执行插入操作时HSET命令返回1,当执行更新操作时返回0.

192.168.77.130:6379> hset user d1 1
(integer) 1 -->此时字段值设置
192.168.77.130:6379> hset user d1 2
(integer) 0  -->此时字段值更新

2) 取值_单个

语法: HGET key fifield

192.168.77.130:6379> hget user d1
"2"

3) 赋值_多个字段

语法: HMSET key fifield value [fifield value …]

192.168.77.130:6379> hmset stu d1 1 d2 2 d3 3
OK

4) 取值_多个

语法: HMGET key fifield [fifield …]

192.168.77.130:6379> hmget stu d1 d2 d3
1) "1"
2) "2"
3) "3"

5) 获取_所有字段

语法:HGETALL key

192.168.77.130:6379> hgetall stu
1) "d1"
2) "1"
3) "d2"
4) "2"
5) "d3"
6) "3"

6)删除_单个字段

语法:HDEL key fifield [fifield …]

192.168.77.130:6379> hdel stu d3
(integer) 1

三、 list队列类型

Redis的list是采用来链表来存储,双向链表存储数据,特点:增删快、查询慢(Linkedlist).这个队列是有

序的。

原则:先进后出

1) 向列表左边_增加

语法:LPUSH key value [value …]

192.168.77.130:6379> lpush list a1 a2 a3
(integer) 3

2)向列表左边_弹出

语法:LPOP key(临时存储,弹出后,从队列中清除)

192.168.77.130:6379> lpop list
"a3"

3) 向列表右边_增加

语法:RPUSH key value [value …]

192.168.77.130:6379> rpush list1 a1 a2 a3
(integer) 3

4)向列表右边_弹出

语法:RPOP key

192.168.77.130:6379> rpop list1
"a3"

5)获取-列表元素个数

语法: LLEN key

192.168.77.130:6379> llen list
(integer) 2

6)查看_列表包含元素

语法:LRANGE key start stop

将返回start、stop之间的所有元素(包含两端的元素),索引从0开始,可以是负数,如:“-1”代表最后

的一个元素。

192.168.77.130:6379> lrange list 0 1
1) "a2"
2) "a1"
原则:先进先出

7)左进_右出

192.168.77.130:6379> lpush list2 a1 a2 a3
(integer) 3
192.168.77.130:6379> rpop list2
"a1"

8)右进_左出

192.168.77.130:6379> rpush list4 a1 a2 a3
(integer) 3
192.168.77.130:6379> lpop list4
"a1"

四、set集合类型

Set集合类型:无序、不可重复

1)增加_单个元素/多个元素

语法:SADD key member [member …]

192.168.77.130:6379> sadd stu1 s1
(integer) 1

2)删除_单个元素/多个元素

语法: SREM key member [member …]

192.168.77.130:6379> srem stu1 s2
(integer) 1

3)获取_所有元素

语法: smembers key

192.168.77.130:6379> smembers stu1
1) "s3"
2) "s1"
3) "s2"

4)判断_是否存在元素

语法:SISMEMBER key member

192.168.77.130:6379> sismember stu1 s1
(integer) 1

五、Zset集合类型

Sortedset又叫zset,是有序集合,可排序的,但是唯一。 Sortedset和set的不同之处,是会给set中的元

添加一个分数,然后通过这个分数进行排序。

添加带分数(可用学生成绩,销售数量等来做分数,方便计算排序):

1)增加_单个/多个元素

语法:ZADD key score member [score member …]

向有序集合中加入一个元素和该元素的分数(score),如果该元素已经存在则会用新的分数替换原

有的分数。

192.168.77.130:6379> zadd tec 10 stu1 11 stu2 12 stu3
(integer) 3

2)获得_排名在某范围的元素

获得排名在某个范围的元素列表,并按照元素分数降序返回

语法:ZREVRANGE key start stop [WITHSCORES]

按排名降序呈现:不带分数
192.168.77.130:6379> zrevrange tec 0 3
1) "stu3"
2) "stu2"
3) "stu1"

 按排名降序呈现:带分数
 192.168.77.130:6379> zrevrange tec 0 3 withscores
1) "stu3"
2) "12"
3) "stu2"
4) "11"
5) "stu1"
6) "10"

3)获得_单个元素分数

语法:ZSCORE key member

192.168.77.130:6379> zscore tec stu1
"10"

4)删除_元素

语法:ZREM key member [member …]

192.168.77.130:6379> zrem tec stu1
(integer) 1

5)改变_某元素分数

增加:
192.168.77.130:6379> zincrby tec 2 stu2 
"13"

减少: 减分时使用负数
192.168.77.130:6379> zincrby tec -2 stu2 
"11"

六、 HyoperLogLog命令类型

HyperLogLog是一种使用随机化的算法,以少量内存提供集合中唯一元素数量的近似值。

HyperLogLog 可以接受多个元素作为输入,并给出输入元素的基数估算值:

  • 基数:集合中不同元素的数量。比如 {‘apple’, ‘banana’, ‘cherry’, ‘banana’, ‘apple’} 的基数就是 3。

  • 估算值:算法给出的基数并不是精确的,可能会比实际稍微多一些或者稍微少一些,但会控制在合

    理的范围之内。

HyperLogLog 的优点是,即使输入元素的数量或者体积非常非常大,计算基数所需的空间总是固定

的、并且是很小的。在 Redis 里面,每个 HyperLogLog 键只需要花费 12 KB 内存,就可以计算接近 2^64 个不同元素的基数。这和计算基数时,元素越多耗费内存就越多的集合形成鲜明对比。

但是,因为 HyperLogLog 只会根据输入元素来计算基数,而不会储存输入元素本身,所以

HyperLogLog 不能像集合那样,返回输入的各个元素。

HyperLogLog 相关的一些基本命令。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-orNwoj9g-1599896855907)(F:\Typora_工具类\Nosql_非关系型数据库\images\hyperloglog.png)]

redis 127.0.0.1:6379> PFADD mykey "redis" 
1) (integer) 1 
redis 127.0.0.1:6379> PFADD mykey "java" 
1) (integer) 1 
redis 127.0.0.1:6379> PFADD mykey "mysql" 
1) (integer) 1 
redis 127.0.0.1:6379> PFCOUNT mykey 
(integer) 3

七、其他命令_key相关

-针对单个数据库而言:

1)获取_所有key

  • keys user* //查询以user开头的key
  • keys * //查询所有的key

2)判断是否存在_key

语法:exists key

192.168.77.130:6379> exists c2
(integer) 1

3)删除_key

语法: del key 删除存在的key返回1,不存在的key返回0

192.168.77.130:6379> del c2
(integer) 1

4)重命名_key

语法:rename oldkey newkey

192.168.77.130:6379> rename c1 c2
OK
5)判断_返回值类型

语法: type key

192.168.77.130:6379> type stu1
set

6)设置_key生存时间

设置key的生存时间:缓存的数据一般都是需要设置生存时间的,即:到期后数据销毁。

语法:EXPIRE key seconds

设置key的生存时间(单位:秒)key在多少秒后会自动删除~~

192.168.77.130:6379> expire c2 120
(integer) 1

7)查看_key的生成时间

查看key剩余的生存时间

语法: TTL key

192.168.77.130:6379> ttl c2
(integer) 68

8)清除_key的生存时间

语法:PERSIST key

清除生存时间后,将不会销毁

192.168.77.130:6379> persist c2
(integer) 1

9)获取_服务器信息和统计

语法: info

10)删除_当前选择数据库中的所有key

语法:flushdb

11)删除_所有数据库中的所有key

语法:flushall

12)切换_数据库

一个redis实例key包括多个数据库,客户端可以指定连接某个redis实例的哪个数据库,就好比一个

mysql中创建多个数据库,客户端连接时指定连接哪个数据库。

一个redis实例最多可提供16个数据库,下标从0-15,客户端默认连接第0号数据库

语法: select 数据库

切换至0数据库:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-g7r6mwSX-1599896855909)(F:\Typora_工具类\Nosql_非关系型数据库\images\切换数据库.jpg)]

13)移动key_到另一个数据库

语法:move key 数据库编号

192.168.77.130:6379> move stu1 1
(integer) 1
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值