千家信息网

redis基础篇

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,redis有五种数据类型,分别是string、hash、list、set、zset一、string类型:redis 127.0.0.1:6379>set name doo//设置一个键值对,键为nam
千家信息网最后更新 2026年11月03日redis基础篇

redis有五种数据类型,分别是string、hash、list、set、zset

一、string类型:

redis 127.0.0.1:6379>set name doo//设置一个键值对,键为name,值为doo

redis 127.0.0.1:6379>get name//获取name的值

redis 127.0.0.1:6379>set name ya //再次赋值将被覆盖,一个key对应一个value

redis 127.0.0.1:6379>setnx name doo

//会判断name是否存在,存在返回0,不存在返回1,且写入name=doo这个键值对。

redis 127.0.0.1:6379>setex haircolor 10 red //指定haircolor的值存在10秒,超过时间则消失

redis 127.0.0.1:6379>setrange name 6 doo.com

//对于name这个字符串的第七个位置改为doo.com,如果替换的没有原来的长,则原来结尾部分依然存在,例如:name=abcdefg, setrange name 2 12 则name变为a12defg

redis 127.0.0.1:6379>mset key1 doo key2 ya //批量设置键值对

redis 127.0.0.1:6379>msetnx //批量判断是否存在,只要有一个存在,则全部设置不成功

redis 127.0.0.1:6379>getset key 30 //获取key的值,同时重新给key赋值

redis 127.0.0.1:6379>mget //批量获取值,有空的则返回空

redis 127.0.0.1:6379>incr key7 //对key7自增1,如果key7不存在,则默认原来为0

redis 127.0.0.1:6379>incrby key6 5 //对key6自增5,

redis 127.0.0.1:6379>incrby key6 -4 //对key6自减4

redis 127.0.0.1:6379>decr key6 1 //对key6自减1

redis 127.0.0.1:6379>decr key6 -2 //对key6自增2

redis 127.0.0.1:6379>append name net //给name的值后面拼加字符串net

redis 127.0.0.1:6379>strlen name //查看name的值的长度

二、hash数据类型,是字段field和值的映射表,占用内存少

redis 127.0.0.1:6379>hset myhash field1 hello //myhash是哈希表

redis 127.0.0.1:6379>hget myhash field1 //获取myhash表的field1的值

redis 127.0.0.1:6379>hsetnx myhash hello //判断是否存在,存在返回0,不存在则赋值

redis 127.0.0.1:6379>hmget myhash field1 hello filed2 word //批量赋值

redis 127.0.0.1:6379>hmget myhash filed1 filed2 //批量获取值

redis 127.0.0.1:6379>hincrby user:003 age 5 //对user:003表的age自增5

redis 127.0.0.1:6379>hexists user:003 age //会判断age是否存在,存在返回0,否则返回1

redis 127.0.0.1:6379>hlen user:001 //返回哈希表的键值数量

redis 127.0.0.1:6379>hdel myhash age //对myhash表的age字段删除,返回1删除成功

redis 127.0.0.1:6379>hkeys myhash //返回myhash表的所有字段,不返回值

redis 127.0.0.1:6379>hvals myhash //返回myhash表的所有值,不返回字段

redis 127.0.0.1:6379>hgetall myhash //返回myhash表的所有键和值

三、list数据类型

redis 127.0.0.1:6379>lpush mylist "word" //从头部加入一个元素

redis 127.0.0.1:6379>lpush mylist "hello" //

redis 127.0.0.1:6379>lrange mylist 0 -1 //从头部第一个取到尾部

redis 127.0.0.1:6379>rpush mylist "be" //从尾部加入一个元素

redis 127.0.0.1:6379>linsert mylist before "one" "two" //向one元素前面加入一个元素,在头部为前。

127.0.0.1:6379> lpush list2 one//向list2中插入值one

(integer) 1

127.0.0.1:6379> lpush list2 two

(integer) 2

127.0.0.1:6379> lpush list2 three

(integer) 3

127.0.0.1:6379> lrange list2 0 -1//输出list2的所有值

1) "three"

2) "two"

3) "one"

127.0.0.1:6379> lset list2 1 four //将list2 的two改为four插入数据从头部插入,新插入的数据角标为0

OK

127.0.0.1:6379> lrange list2 0 -1

1) "three"

2) "four"

3) "one"

127.0.0.1:6379> lrem list2 3 one//从list2中删除3个和one相同的元素

(integer) 1

127.0.0.1:6379> ltrim list2 2 -1//保留第三个到结尾的元素

OK

127.0.0.1:6379> rpoplpush list1 list2//将list1的尾部加到list2的头部

127.0.0.1:6379> lindex list2 0//返回list2第一个位置的值

127.0.0.1:6379> llen list2//返回list2中元素的个数

四、sets 数据类型 集合

127.0.0.1:6379> sadd myset1 hello//向集合myset1中加入hello元素

(integer) 1

127.0.0.1:6379> smembers myset1//查看myset1的所有元素

1) "hello"

127.0.0.1:6379> sadd myset1 one

(integer) 1

127.0.0.1:6379> srem myset1 one//删除myset1的one元素

(integer) 1

127.0.0.1:6379> spop myset1//随机从myset1中删除一个元素

127.0.0.1:6379> sdiff myset1 myset2//返回两个集合的差集,以前面集合为标准,返回前面那个集合中不在集合2的元素

127.0.0.1:6379> sdiffstore myset4 myset2 myset3//将集合2和3的差距存放于集合4

127.0.0.1:6379> sinter myset1 myset2//取集合1和集合2 的交集

127.0.0.1:6379> sinterstore myset3 myset1 myset2//将集合1和集合2 的交集存于集合3

127.0.0.1:6379> sunion myset1 myset2//取集合1和集合2的并集

127.0.0.1:6379> sunionstore myset3 myset1 myset2 //集合1和集合2的并集存于集合3

127.0.0.1:6379> smove myset2 myset3 three //将集合2 的three移到集合7中

127.0.0.1:6379> scard myset1//返回集合1的元素的个数

127.0.0.1:6379> sismember myset1 one//测试myset1中是否有one,有则返回1,否则返回0

127.0.0.1:6379> srandmember myset1//随机返回集合1中的一个元素,不删除

五、 有序集合zset

127.0.0.1:6379> zadd myzset1 1 one//增加zset1

(integer) 1

127.0.0.1:6379> zadd myzset1 2 two

(integer) 1

127.0.0.1:6379> zadd myzset1 3 two

(integer) 0

127.0.0.1:6379> zrange myzset1 0 -1//查看有序集合的所有元素

1) "one"

2) "two"

127.0.0.1:6379> zrange myzset1 0 -1 withscores//加withscores可现实元素序号

1) "one"

2) "5"

127.0.0.1:6379> zrem myzset1 two//删除集合中的元素

127.0.0.1:6379> zincrby myzset1 2 one//对one的序列号加2

127.0.0.1:6379> zincrby myzset1 -2 one //对one的序列号-2

127.0.0.1:6379> zrank myzset1 three//返回three的索引值,索引值从0开始,序列号从1开始

127.0.0.1:6379> zrank myzset1 three

(integer) 2

127.0.0.1:6379> zrevrank myzset1 three//先降序,再找索引

(integer) 0

127.0.0.1:6379> zrange myzset1 0 -1 withscores//查看元素以及现实序列号

1) "one"

2) "1"

3) "two"

4) "2"

5) "three"

6) "3"

127.0.0.1:6379> zrevrange myzset1 0 -1 withscores//先降序,再查看元素以及序列号

1) "three"

2) "3"

3) "two"

4) "2"

5) "one"

6) "1"

127.0.0.1:6379> zrangebyscore myzset1 2 3 withscores//找序列号是2和3的元素

1) "two"

2) "2"

3) "three"

4) "3"

127.0.0.1:6379> zcount myzset1 2 4//返回序列从2 到4的元素个数

127.0.0.1:6379> zcard myzset1 //返回有序集合元素个数

127.0.0.1:6379> zrange myzset1 0 -1//先看索引

127.0.0.1:6379> zremrangebyrank myzset1 0 1 //删除索引值从0到1的元素

127.0.0.1:6379> zremrangebyscore myzset1 2 5//删除序列号是2到5的元素

元素过期:

127.0.0.1:6379> set age 20//设置age的值为20

OK

127.0.0.1:6379> get age //获取age的值

"20"

127.0.0.1:6379> expire age 20//设置age的值存在20秒

(integer) 1

127.0.0.1:6379> ttl age//获取剩余存在时间,秒

(integer) 16

键值相关命令:

127.0.0.1:6379> keys * //返回所有的键

127.0.0.1:6379> keys my* //返回my开头的所有键

127.0.0.1:6379> exists name //查看name键是否存在,存在返回1,否则返回0

127.0.0.1:6379> del age //删除age的键

127.0.0.1:6379> expire age 10 //设置过期

127.0.0.1:6379> persist age //取消过期设置

127.0.0.1:6379> move age 1 //将age这个键移动到1数据库

一共16个数据库,从0-15 开始默认是0

127.0.0.1:6379> select 0 选择进入0号数据库

127.0.0.1:6379> randomkey 随机返回一个key

127.0.0.1:6379> rename age age.new 给键重新命名

127.0.0.1:6379> type age 返回值的数据类型,(string、zset、list等)

服务器相关命令:

127.0.0.1:6379> ping 测试与服务器连接正常,正常返回pong

127.0.0.1:6379> echo 类似于回显

127.0.0.1:6379> select 2 选择2号数据库

127.0.0.1:6379> quit //退出,或者用exit

127.0.0.1:6379> dbsize //返回当前库键的数目

127.0.0.1:6379> info //获取redis的信息

127.0.0.1:6379> config get * //返回当前所有配置项

127.0.0.1:6379> CONFIG GET timeout//返回timeout配置项的参数值

1) "timeout"

2) "0"

127.0.0.1:6379> flushdb //删除当前库中所有的key

127.0.0.1:6379> flushall //删除所有库的所有key,不管在哪个库下都是


元素 数据 序列 序列号 类型 头部 索引 个数 字段 数据库 有序 尾部 成功 交集 命令 字符 字符串 时间 服务器 现实 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网通讯科技 北京互联网科技公司 互联网金融科技创新 善班互联网科技有限公司 互联网科技缩写 一五八零互联网科技 卓越科技互联网 招聘 湖南洣水互联网科技有限公司扣款 互联网公司科技股 呼和浩特新华互联网科技学院 互联网企业科技类企业如何做账 美国互联网科技公司 上海乐五互联网科技有限公司 世界互联网科技成果奖 广州智享互联网科技 版纳互联网科技选哪家 云南互联网科技学费 亚光科技低轨卫星互联网 现代科技的标志之一的互联网 如何强化互联网金融科技 广州大一互联网络科技有限公司 互联网科技工作委员会主任 美国互联网黑科技 互联网科技股午盘股票涨跌 移动互联网科技股 宝灵互联网科技有限公司 互联网科技大奖都有哪些公司 允成互联网科技有限公司融资 互联网科技公司营业执照怎么办理 同城互联网络科技
0