|NO.Z.00103|——————————|LinuxNetwork|——|Linux&NoSQL.V03|

一、Redis常用命令:string 类型及操作
### --- string 类型及操作

~~~     string 是最简单的类型,一个 key 对应一个 value,string 类型是二进制安全的。
~~~     redis 的 string 可以包含任何数据。
### --- set:设置 key 对应的值为 string 类型
~~~     例如:我们添加一个 name=atguigu 的键值对应

redis 127.0.0.1:6379>set name atyanqi
[root@server21 ~]# redis-server /usr/local/redis/etc/redis.conf 
[root@server21 ~]# redis-cli 
redis 127.0.0.1:6379> set name atyanqi
OK
redis 127.0.0.1:6379> get name
"atyanqi"
### --- setnx:设置 key 对应的值为 string 类型,如果 key 已经存在,
~~~     返回 0,nx 是 not exist 的意思

redis 127.0.0.1:6379> setnx name atyanqi                    // 检查设置的键值是否存在,若是存在则不生设置
(integer) 0
### --- get:获取 key 对应的 string 值,如果 key 不存在返回 nil

redis 127.0.0.1:6379> get name
"zhangsan"
### --- mset & mget 同时设置和获取多个键值对

redis 127.0.0.1:6379> mset age 18 sex man                   // 同时设置多个键值对
OK
redis 127.0.0.1:6379> get name age sex                      // 同时获取多个键值得值
1) "zhangsan"
2) "18"
3) "man"
### --- incrby:对 key 的值做加加(指定值)操作,并返回新的值

redis 127.0.0.1:6379> incrby age 5
(integer) 23
redis 127.0.0.1:6379> incrby age 2
(integer) 25
redis 127.0.0.1:6379> incrby age -5
(integer) 20
### --- del:删除一个已创建的 key

redis 127.0.0.1:6379> del age
(integer) 1
redis 127.0.0.1:6379> get age
(nil)
二、hash 类型及操作

### --- hash 类型及操作

~~~     Redis hash 是一个 string 类型的 field(字段)和 value 的映射表,
~~~     它的添加、删除操作都是 0(1)平均;hash 特别适合用于存储对象,
~~~     相较于将对象的每个字段存成单个 string 类型,
~~~     将一个对象存储在 hash 类型中会占用更少的内存,并且可以更方便的存取整个对象。
### --- hset:设置 hash field 为指定值,如果 key 不存在,则先创建。
~~~     例如:为 num1 表创建一个叫 name 字段(key),键值是 yanqi

redis 127.0.0.1:6379> hset num1 name yanqi
(integer) 1
### --- hget、hmset、hmget 意义同上近似
~~~     hdel:删除制定表中的某一个键值对
~~~     hgetall:列出表中的所有键值对

redis 127.0.0.1:6379> hset num1 age 18
(integer) 1
redis 127.0.0.1:6379> hset num1 sex man
(integer) 1
redis 127.0.0.1:6379> hset num2 name lisi
(integer) 1
redis 127.0.0.1:6379> hset num2 age 25
(integer) 1
redis 127.0.0.1:6379> hset num2 sex man
(integer) 1
redis 127.0.0.1:6379> hget num2 age
"25"
redis 127.0.0.1:6379> hmget num1 name age sex
1) "yanqi"
2) "18"
3) "man"
redis 127.0.0.1:6379> hdel num1 sex
(integer) 1
redis 127.0.0.1:6379> hmget num2 name age
1) "lisi"
2) "25"
redis 127.0.0.1:6379> hgetall num2
1) "name"
2) "lisi"
3) "age"
4) "25"
5) "sex"
6) "man"

三、list 类型及操作


### --- list 类型及操作

~~~     list 是一个链表结构,主要功能是 pushpop、获取一个范围内的所有值等等,
~~~     操作中 key 理解为链表的名字。
~~~     Redis 的 list 类型其实就是一个每个子元素都是 string 类型的双向链表。
~~~     我们可以通过pushpop 操作从链表的头部或尾部添加删除元素。
### --- lpush:在 key 对应 list 的头部添加字符串元素。

redis 127.0.0.1:6379> lpush zhangsan zhangsan
(integer) 1
redis 127.0.0.1:6379> lpush zhangsan 18
(integer) 2
### --- lrange:从指定链表中获取指定范围的元素
~~~     0 -1:此范围代表全部元素,意为从头到尾

127.0.0.1:6379> lrange zhangsan 0 -1
1) "18"
2) "zhangsan"
四、lpush、rpush、lpop、rpop、lrange 详见图示
五、Set 类型及操作
 
### --- Set 类型及操作

~~~     set 是集合,他是 string 类型的无序集合。Set 是通过 hash table 实现的,
~~~     对集 、交集、差集。通过这些操作我们可以实现社交网站中的好友推荐和 blog 的 tag 功能。
~~~     集合不允许有重复值。
### --- sadd:添加一个或多个元素到集合中

redis 127.0.0.1:6379> sadd mset 1 2 3 4
(integer) 4
### --- smembers:获取集合里面所有的元素

redis 127.0.0.1:6379>  smembers mset
1) "1"
2) "2"
3) "3"
4) "4"
### --- srem:从集合中删除指定的一个或多个元素

redis 127.0.0.1:6379> srem mset 2 4
(integer) 2
redis 127.0.0.1:6379>  smembers mset
1) "1"
2) "3"
### --- spop:随机从集合中删除一个元素,并返回

redis 127.0.0.1:6379> spop mset
"3"
redis 127.0.0.1:6379>  smembers mset
1) "1"
### --- scard:获取集合里面的元素个数

redis 127.0.0.1:6379> scard mset
(integer) 1
### --- sdiff:返回集合 1 与集合 2 的差集。以集合 1 为主

redis 127.0.0.1:6379> sdiff mset1 mset2
### --- sinter:
~~~     获得两个集合的交集

### --- sunion:
~~~     获得指定集合的并集
六、zset 类型及操作
 
### --- zset 类型及操作

~~~     zset 是 set 的一个升级版本,它在 set 的基础上增加了一个顺序属性,
~~~     这一属性在添加修改元素的时候可以指定,每次指定后,zset 会自动重新按新的值调整顺序。
~~~     可以理解为有两列的 mysql 表,一列存的 value,一列存的顺序。
~~~     操作中 key 理解为 zset 的名字。
### --- zadd:向一个指定的有序集合中添加元素,每一个元素会对应的有一个分数。
~~~     你可以指定多个分数/成员组合。如果一个指定的成员已经在对应的有序集合中了,
~~~     那么其分数就会被更新成最新的,并且该成员会重新调整到正确的位置,以确保集合有序。
~~~     分数的值必须是一个表示数字的字符串。

redis 127.0.0.1:6379> zadd zset 2 zhangsan 1 lisi 1 wangwu
(integer) 3
### --- zrange:返回有 序集合中,指定区间内的成员。
~~~     其中成员按照 score(分数)值从小到大排序。
~~~     具有相同 score 值的成员按照字典顺序来排列。
~~~     注: withscores 返回集合中元素的同时,返回其分数(score)

redis 127.0.0.1:6379> zrange zset 0 -1 withscores
1) "lisi"
2) "1"
3) "wangwu"
4) "1"
5) "zhangsan"
6) "2"
### --- zrem:删除有序集合中指定的值

redis 127.0.0.1:6379> zrem zset zhangsan
(integer) 1
127.0.0.1:6379> zrange zset 0 -1 withscores
1) "lisi"
2) "1"
3) "wangwu"
4) "1"
### --- zcard:返回有序集合元素的个数

redis 127.0.0.1:6379> zcard zset
(integer) 2
七、其他相关命令
### --- keys:按照键名查找指定的键。支持通配符(* ?等)

redis 127.0.0.1:6379> keys *set
1) "zset"
2) "mset"
### --- exists:确认一个键是否存在(1 表示存在)

redis 127.0.0.1:6379> exists name
(integer) 1
### --- del:删除一个键(通用)
### --- expire:设置一个键(已存在)的过期时间,如果键已经过期,将会被自动删除
### --- ttl:以秒为单位,返回指定键的剩余有效时间
~~~     当 key 不存在时,返回 -2 。
~~~     当 key 存在但没有设置剩余生存时间时,返回 -1 。
~~~     否则,以秒为单位,返回 key 的剩余生存时间。

redis 127.0.0.1:6379> set name zhangsan
OK
redis 127.0.0.1:6379> ttl name
(integer) -1
### --- select:

~~~     选择一个数据库,默认连接的数据库是 0,可以支持共 16 个数据库。
~~~     在配置文件中,通过databases 16 关键字定义。
### --- move:将当前数据库的键移动到指定的数据库中

redis 127.0.0.1:6379> move mset 1
(integer) 1
redis 127.0.0.1:6379> select 1
OK
redis 127.0.0.1:6379[1]> keys *
1) "mset"
### --- type:返回键的类型

redis 127.0.0.1:6379[1]> type mset
set
### --- dbsize:返回当前库中键的数量(所有类型)

redis 127.0.0.1:6379[1]> dbsize 
(integer) 1
redis 127.0.0.1:6379[1]> keys *
1) "mset"
### --- save:
~~~     保存所有的数据。很少在生产环境直接使用 SAVE 命令,
~~~     因为它会阻塞所有的客户端的请求,可以使用 BGSAVE 命令代替. 
~~~     如果在 BGSAVE 命令的保存数据的子进程发生错误的时,
~~~     用 SAVE命令保存最新的数据是最后的手段。

redis 127.0.0.1:6379[1]> save
OK
### --- info:获取服务器的详细信息
redis 127.0.0.1:6379[1]> info

### --- config get:获取 redis 服务器配置文件中的参数。支持通配符
redis 127.0.0.1:6379[1]> config get *
### --- flushdb:删除当前数据库中所有的数据
redis 127.0.0.1:6379[1]> flushdb
OK
redis 127.0.0.1:6379[1]> keys *
(empty list or set)    

### --- flushall:删除所有数据库中的所有数据
redis 127.0.0.1:6379[1]> flushall
OK

 
 
 
 
 
 
 
 
 

Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
                                                                                                                                                   ——W.S.Landor

 

 

posted on   yanqi_vip  阅读(19)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示