Redis对字符串的基本操作

Posted 我想月薪过万

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis对字符串的基本操作相关的知识,希望对你有一定的参考价值。

回顾

在上一节中,我们主要讲解了Redis数据库的安装和基本使用:

Redis非关系型数据的安装与简单使用_我想月薪过万的博客-CSDN博客https://blog.csdn.net/qq_41885673/article/details/121159790?spm=1001.2014.3001.5502这一节中,我们主要来聊一下Redis中对 String 的具体操作

预备知识

Redis的五大数据类型是:String(字符串)、Hash(哈希)、List(列表)、Set(集合)和 zset(sorted set:有序集合)

String(字符串)

  • 存放一个地址信息
127.0.0.1:6379> set address "ᄆᄒ" //这里的乱码代表 中文 北京
OK
  •  获取一个键值
127.0.0.1:6379> get address
"\\xb1\\xbe"
  • 删除一个键值
127.0.0.1:6379> del address
(integer) 1
127.0.0.1:6379> get address
(nil)

注意:set 一个键值的时候,如果存在就相当于修改,不存在就是添加。

  • 设置键秒值 
setex key second value
127.0.0.1:6379> setex name 10 yiqi
OK
127.0.0.1:6379> get name
"yiqi"
127.0.0.1:6379> get name
"yiqi"
127.0.0.1:6379> get name
(nil)
  • 同时设置/获取一个或多个 key-value 对
127.0.0.1:6379> mset key1 yiqi key2 seemi
OK
127.0.0.1:6379> mget key1 key2
1) "yiqi"
2) "seemi"

Hash(哈希)

测试案例

存放一个 user1 包含 name “smith”  、 age 30  、 job “golang coder”

127.0.0.1:6379> hset user1 name "smith"
(integer) 1
127.0.0.1:6379> hset user1 age 30
(integer) 1
127.0.0.1:6379> hset user1 job "golang coder"
(integer) 1

获取 user1

127.0.0.1:6379> hget user1 name
"smith"
127.0.0.1:6379> hget user1 age
"30"
127.0.0.1:6379> hget user1 job
"golang coder"

同时获取 user1

127.0.0.1:6379> hgetall user1
1) "name"
2) "smith"
3) "age"
4) "30"
5) "job"
6) "golang coder"

同时设置 / 获取 user2

127.0.0.1:6379> hmset user2 name jerry age 110 job "java coder"
OK
127.0.0.1:6379> hmget user2 name age job
1) "jerry"
2) "110"
3) "java coder"

统计一个hash有几个元素

127.0.0.1:6379> HLEN user1
(integer) 3

查看哈希表key中,给定字段是否存在

127.0.0.1:6379> HEXISTS user1 name
(integer) 1
127.0.0.1:6379> HEXISTS user1 name2
(integer) 0

List(列表)

存一个 city 包含三个城市(从左边插入)

127.0.0.1:6379> lpush city beijing shanghai tianjing
(integer) 3

存一个 heroList (从右边插入)

127.0.0.1:6379> rpush heroList aaa bbb ccc
(integer) 3

取值,但不改变原List

127.0.0.1:6379> lrange city 0 -1  ## -1 表示倒数第一个
1) "tianjing"
2) "shanghai"
3) "beijing"

取值,并弹出取走的值(从左边弹出)

127.0.0.1:6379> LPOP heroList
"aaa"
127.0.0.1:6379> LRANGE heroList 0 -1
1) "bbb"
2) "ccc"

取值,并弹出取走的值(从右边弹出)

127.0.0.1:6379> RPOP heroList
"ccc"
127.0.0.1:6379> LRANGE heroList 0 -1
1) "bbb"

删除 List

127.0.0.1:6379> DEL heroList
(integer) 1
127.0.0.1:6379> LRANGE heroList 0 -1
(empty list or set)

lindex ,按照索引下标获取元素

127.0.0.1:6379> LPUSH hero aaa bbb ccc
(integer) 3
127.0.0.1:6379> LINDEX hero 0
"ccc"

llen , 返回列表的长度

127.0.0.1:6379> LLEN hero
(integer) 3

Set(集合)

 

 sadd

127.0.0.1:6379> sadd email yy@qq.com bb@qq.com
(integer) 2

 smembers

127.0.0.1:6379> SMEMBERS email
1) "yy@qq.com"
2) "bb@qq.com"

sismember

127.0.0.1:6379> SISMEMBER email hh@qq.com
(integer) 1
127.0.0.1:6379> SISMEMBER email uu@qq.com
(integer) 0

srem 

127.0.0.1:6379> srem email hh@qq.com
(integer) 1
127.0.0.1:6379> srem email hh@qq.com
(integer) 0

以上是关于Redis对字符串的基本操作的主要内容,如果未能解决你的问题,请参考以下文章

jQuery的DOM操作

如何利用redis来进行分布式集群系统的限流设计

Redis对字符串的基本操作

jedis连接redis

简化Redis数据访问代码RedisTemplate

Redis的列表(List)类型