redis常用命令

一、 String类型

1.赋值语法:SET key value

127.0.0.1:6379> set name zhaoyun
ok

2.取值语法: GET key 

127.0.0.1:6379> get name
"zhaoyun"

3.设置多个键语法: MSET key value [key value …] 

127.0.0.1:6379> mset k2 lisi k3 wangwu
ok

4.获取多个键值语法: MGET key [key …]  

127.0.0.1:6379> mget k2 k3
1) "lisi"
2) "wangwu"

5.删除语法:DEL key 

127.0.0.1:6379> del k3
(integer) 1
127.0.0.1:6379> get k3
(nil)

二、字符串数字的递增与递减 

递增数字:当存储的字符串是整数时, Redis 提供了一个实用的命令 INCR ,其作用是让当前键值递增,并返回递增后的值。 递增数字语法: INCR key 递减数值语法 : DECR key 增加指定的整数语法 : INCRBY key increment 减少指定的整数 语法 :DECRBY key decrement

1.递增

127.0.0.1:6379> incr num
(integer) 1
127.0.0.1:6379> incr num
(integer) 2

2.递减  

127.0.0.1:6379> decr num
(integer) 1

3.指定步长 

127.0.0.1:6379> incrby num2 2
(integer) 2
127.0.0.1:6379> incrby num2 3
(integer) 5
127.0.0.1:6379> decrby num2 2
(integer) 3
127.0.0.1:6379> decrby num2 1
(integer) 2

三 、Hash散列 

hash 叫散列类型,它提供了字段和字段值的映射。字段值只能是字符串类型,不支持散列类型、集合类型等其它类型。相当于是对象格式的存储 赋值语法: HSET key field value
127.0.0.1:6379> hset user1 username zhangsan
(integer) 1
127.0.0.1:6379> hset user1 username lisi
(integer) 0
  • 设置一个字段值, HSET命令不区分插入和更新操作,当执行插入操作时HSET命令返回1,当执行更新操作时返回0.

1.取值语法: HGET key field  

127.0.0.1:6379> hget user1 username
"lisi"

2.设置多个字段语法: HMSET key field value [field value ...]  

127.0.0.1:6379> hmset user1 password 123 age 20
OK

3.取多个值语法: HMGET key field [field ...]

127.0.0.1:6379> hmget user1 password age
1) "123"
2) "20"

4.获取所有字段值语法:HGETALL key  

127.0.0.1:6379> hgetall user1
1) "username"
2) "lisi"
3) "password"
4) "123"
5) "age"
6) "20"

5.删除字段语法:HDEL key field [field ...] 

127.0.0.1:6379> hdel user1 username
(integer) 1
127.0.0.1:6379> hgetall user1
1) "password"
2) "123"
3) "age"
4) "20"

四、队列List  

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

1.向列表右边增加元素 : RPUSH key value [value ...]  

从列表左边弹出元素: LPOP key( 临时存储,弹出后, 从队列中清除 )

 

 127.0.0.1:6379> lpush alist a1 a2 123

(integer) 3
127.0.0.1:6379> lpop alist
"123"
127.0.0.1:6379> lpop alist
"a2"

 2.向列表右边增加元素 : RPUSH key value [value ...]

从列表右边弹出元素: RPOP key

 127.0.0.1:6379> rpush blist a1 a2 345

(integer) 3
127.0.0.1:6379> rpop blist
"345"

3.获取列表中元素的个数: LLEN key  

127.0.0.1:6379> llen blist
(integer) 1

4.查看列表语法:LRANGE key start stop  

 127.0.0.1:6379> lrange blist 0 3

1) "a2"

五、Set集合 

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

1.增加元素语法:SADD key member [member ...]  

获得集合中的所有元素 : smembers key 

 

127.0.0.1:6379> sadd ulist user1
(integer) 1
127.0.0.1:6379> sadd ulist user2
(integer) 1
127.0.0.1:6379> sadd ulist user3
(integer) 1
127.0.0.1:6379> smembers ulist
1) "user2"
2) "user3"
3) "user1"

2.删除元素语法: SREM key member [member ...] 

127.0.0.1:6379> srem ulist user2

 (integer) 1

127.0.0.1:6379> smembers ulist
1) "user3"
2) "user1"

3.判断元素是否在集合中: SISMEMBER key member  

 127.0.0.1:6379> smembers ulist

1) "user3"
2) "user1"
127.0.0.1:6379> sismember ulist user2
(integer) 0
127.0.0.1:6379> sismember ulist user1
(integer) 1

六、Zset有序集合 

Sortedset 又叫 zset, 是有序集合,可排序的,但是唯一。 Sortedset set 的不同之处,是会给 set 中的元素添加一个分数,然后通过这个分数进行排序。

1. 增加元素:ZADD key score member [score member ...]

 127.0.0.1:6379> zadd num1 20 stu1 30 stu2 40 stu3

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

2.添加带分数:ZREVRANGE key start stop [WITHSCORES]

 127.0.0.1:6379> zadd num1 10 stu4

(integer) 1
127.0.0.1:6379> zrevrange num1 0 4
1) "stu3"
2) "stu2"
3) "stu1"
4) "stu4"

3.获取元素的分数 :ZSCORE key member  

 127.0.0.1:6379> zscore num1 stu2

"30"

4.删除元素ZREM key member [member ...]  

127.0.0.1:6379> zrem num1 stu2
(integer) 1
127.0.0.1:6379> zrevrange num1 0 4
1) "stu3"
2) "stu1"
3) "stu4"

5.获得元素的分数的可以在命令尾部加上WITHSCORES参数  

127.0.0.1:6379> zrevrange num1 0 4 withscores
1) "stu3"
2) "40"
3) "stu1"
4) "20"
5) "stu4"
6) "10"

七、HyoperLogLog命令  

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

HyperLogLog 可以接受多个元素作为输入,并给出输入元素的基数估算值:
  •  基数:集合中不同元素的数量。比如 {‘apple’, ‘banana’, ‘cherry’, ‘banana’, ‘apple’} 的基数就是 3
  • 估算值:算法给出的基数并不是精确的,可能会比实际稍微多一些或者稍微少一些,但会控制在合理的范围之内。
HyperLogLog 的优点是,即使输入元素的数量或者体积非常非常大,计算基数所需的空间总是固定的、并且是很小的。
Redis 里面,每个 HyperLogLog 键只需要花费 12 KB 内存,就可以计算接近 2^64 个不同元素的基数。这和计算基数时,元素越多耗费内存就越多的集合形成鲜明对比。
但是,因为 HyperLogLog 只会根据输入元素来计算基数,而不会储存输入元素本身,所以
HyperLogLog 不能像集合那样,返回输入的各个元素。
HyperLogLog 相关的一些基本命令。

示例:  

 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

 八、其他命令

 1.keys返回满足给定pattern 的所有key

keys user* //查询以user开头的key

keys * // 查询所有的 key

2.exists确认一个key 是否存在,存在返回1  

127.0.0.1:6379> exists num2 // 语法 :exists key
(integer) 1
127.0.0.1:6379> exists num23
(integer) 0

3.del删除一个key 

127.0.0.1:6379> del num1 // 语法 : del key 删除存在的 key 返回 1 ,不存在的 key 返回 0
(integer) 1
127.0.0.1:6379> del num23
(integer) 0

4.rename重命名key:rename oldkey newkey 

 127.0.0.1:6379> rename k1 k11

OK
127.0.0.1:6379> keys *
1) "ulist"
2) "k2"
3) "user1"
4) "num2"
5) "clist"
6) "k11"

 5.type返回值的类型: type key

 127.0.0.1:6379> type ulist

set
127.0.0.1:6379> type k11
string
127.0.0.1:6379> type alist
list

6.EXPIRE key seconds  

  • 设置key的生存时间(单位:秒)key在多少秒后会自动删除
  • TTL key 查看key剩余的生存时间
  • PERSIST key 清除生存时间

 127.0.0.1:6379> set a1 123

OK
127.0.0.1:6379> get a1
"123"
127.0.0.1:6379> expire a1 60
(integer) 1
127.0.0.1:6379> ttl a1
(integer) 56
127.0.0.1:6379> ttl a1
(integer) 51
127.0.0.1:6379> ttl a1
(integer) 47

7. 获取服务器信息和统计:info 

8.删除当前选择数据库中的所有keyflushdb 

9.删除所有数据库中的所有key:flushall  

 九、Redis的多数据库

一个 redis 实例 key 包括多个数据库,客户端可以指定连接某个 redis 实例的哪个数据库,就好比一个
mysql 中创建多个数据库,客户端连接时指定连接哪个数据库。
一个 redis 实例最多可提供 16 个数据库,下标从 0-15 ,客户端默认连接第 0 号数据库,也可以通过 select选择连接哪个数据库,如下连接1 号库 :

 

 换到0数据库:

 

 

 

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值