学习目标:
1小时了解redis五种数据操作及常用命令
# 学习内容:
redis数据类型 ,直接上命令
1、 String 类型
赋值取值: set,get
redis:0>set str 123
"OK"
redis:0>get str
"123"
redis:0>getset str 456
"123"
redis:0>get str
"456"
多值操作:mset,mget
redis:0>mset s1 123 s2 456
"OK"
redis:0>mget s1 s2
1) "123"
2) "456"
递增递减:incr,decr,incrby,decrby (自增可以作为分布式数据库主键)
redis:0>incr int
"1"
redis:0>incr int
"2"
redis:0>decr int
"1"
redis:0>decr int
"0"
redis:0>incrby int 10
"10"
redis:0>incrby int 10
"20"
redis:0>decrby int 10
"10"
redis:0>decrby int 10
"0"
删除key:: del (五种类型通用删除方法)
redis:0>del str
"1"
redis:0>get str
null
获取key长度:strlen
redis:0>set str 123456
"OK"
redis:0>strlen str
"6"
追加:append
redis:0>append str 123
"3"
redis:0>append str 456
"6"
redis:0>get str
"123456"
redis:0>append str abc
"9"
2、 Map 类型 散列类型
赋值取值删除判断:hset,hget,mhset,mhget,hgetall,hdel,hincrby,hexists,hkeys,hlen
redis:0>hset user name zhangsan (设置单个值)
"1"
redis:0>hget user name (取单个值)
"zhangsan"
redis:0>hmset user name lisi age 20 (设置多个值)
"OK"
redis:0>hmget user name age (取多个值)
1) "lisi"
2) "20"
redis:0>hgetall user (取所有的值)
1) "name"
2) "lisi"
3) "age"
4) "20"
redis:0>hdel user name(删除map中指定的key ,删除map直接用del)
"1"
redis:0>hgetall user
1) "age"
2) "20"
redis:0>hincrby user age 2redis:0> (map中有且只有这一个自增)
"22"
redis:0>hexists user name (判断map中是否有某个key)
"0"
redis:0>hexists user age (判断map中的key 是否存在)
"1"
redis:0>hkeys user (获取map中所有的key)
1) "age"
2) "name"
redis:0>hvals user(获取所有的value)
1) "20"
2) "lisi"
redis:0>hlen user
"2"
3、 list 类型 链表两端可以操作
元素操作:lpush,rpush,lrange,lpop,rpop,llen,lrem,lindex,lset,ltrim,rpoplpush
redis:0>lpush list zhangsan
"1"
redis:0>lpush list lisi
"2"
redis:0>rpush list wangwu
"3"
redis:0>rpush list zhaosi
redis:0>lrange list 0 3 (查看list下标起始位置)
1) "lisi"
2) "zhangsan"
3) "wangwu"
4) "zhaosi"
redis:0>lrange list 0 -1 (查看list中的所有值)
1) "xiaowang"
2) "lisi"
3) "zhangsan"
4) "wangwu"
5) "zhaosi"
redis:0>lpop list (左边弹出值)
"xiaowang"
redis:0>rpop list (右边弹出值)
"zhaosi"
redis:0>llen list (查看list的长度)
"3"
redis:0>lrange list 0 -1
1) "2"
2) "3"
3) "4"
4) "3"
5) "2"
6) "3"
7) "4"
8) "3"
9) "lisi"
10) "zhangsan"
11) "wangwu"
redis:0>lrem list 1 2 (从左边开始移除1个元素2)
"1"
redis:0>lrange list 0 -1
1) "3"
2) "4"
3) "3"
4) "2"
5) "3"
6) "4"
7) "3"
8) "lisi"
9) "zhangsan"
10) "wangwu" redis:0>lrange list 0 -1
1) "3"
2) "4"
3) "3"
4) "2"
5) "3"
6) "4"
7) "lisi"
8) "zhangsan"
9) "wangwu"
redis:0>lrem list -1 3 (从右边开始移除一个元素3)
"1"
redis:0>lrange list 0 -1
1) "3"
2) "4"
3) "3"
4) "2"
5) "4"
6) "lisi"
7) "zhangsan"
8) "wangwu"
redis:0>lrem list 0 3 (删除所有的元素3)
"2"
redis:0>lrange list 0 -1
1) "4"
2) "2"
3) "4"
4) "lisi"
5) "zhangsan"
6) "wangwu"
redis:0>lindex list 2 (获取list下面指定下标元素)
"4"
redis:0>lindex list 5 (获取list下面指定下标元素)
"wangwu"
redis:0>lset list 5 xiaowang (设置指定下标元素)
"OK"
redis:0>lindex list 5
"xiaowang"
redis:0>ltrim list 0 2 (只保留链表指定片段)
"OK"
redis:0>lrange list redis:0>0 -1
1) "4"
2) "2"
3) "4"
redis:0>rpoplpush list newList (将元素转移到另一个链表中)
"4"
redis:0>lrange newList 0 -1
1) "4"
4、 set 类型 集合类型不可以重复
元素操作命令: sadd,smembers,srem,sdiff,sinter ,sunion
redis:0>redis:0>sadd set 123
"1"
redis:0>smembers set
1) "123"
2) "12d"
redis:0>srem set 123 (移除元素)
"1"
redis:0>smembers set (查询集合中所有元素)
1) "12d"
redis:0>sadd set1 1 2 3 4
"4"
redis:0>sadd set2 3 4 5 6
"4"
redis:0>sdiff set1 set2 (集合相减)
1) "1"
2) "2"
redis:0>sinter set1 set2 (两个集合取交集)
1) "3"
2) "4"
redis:0>sunion set1 set2 (集合取并集)
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"
6) "6"
4、 zset 类型 集合类型不可以重复
元素操作命令: zadd, zscore, zrange, zrevrange, zrank
redis:0>zadd zset 2 zhangsan 4 lisi 1 laowang 3 mayun
"4"
redis:0>zscore zset laowang (获取元素的分数)
"1"
redis:0>zrange zset 0 -1 (获取集合全部)
1) "laowang"
2) "zhangsan"
3) "mayun"
4) "lisi"
redis:0>zrange zset 0 -1 withscores
1) "laowang"
2) "1"
3) "zhangsan"
4) "2"
5) "mayun"
6) "3"
7) "lisi"
8) "4"
redis:0>zrevrange zset 0 -1 (排序进行反转)
1) "lisi"
2) "mayun"
3) "zhangsan"
4) "laowang"
redis:0>zrevrange zset 0 -1 withscores
1) "lisi"
2) "4"
3) "mayun"
4) "3"
5) "zhangsan"
6) "2"
7) "laowang"
8) "1"
redis:0>zrank zset mayun (从小到大,返回元素排名排名)
"2"
redis:0>zrevrank zset laowang (从大到小,返回元素排名)
"3"
6、 其它常用命令 keys,exists,type,expire,ttl,persist,pexpire(设置生存时间为毫秒,基本用不到)
redis:0>keys * (查询所有的key)
1) "set2"
2) "newList"
3) "set"
4) "zset"
5) "list"
6) "set1"
redis:0>exists set (判断名称为set的key是否存在)
"1"
redis:0>expire set 10 (设置set过期时间为10s)
"1"
redis:0>exists set
"0"
redis:0>ttl list (查看剩余过期时间)
"9988"
redis:0>ttl list
"9986"
redis:0>persist list (清除过期时间,让key永生)
"1"
redis:0>ttl list
"-1"
学习时间:
1、 周一至周五晚上 7 点—晚上9点 2、 周六上午 9 点-上午 11 点 3、 周日下午 3 点-下午 6 点学习产出:
提示:这里统计学习计划的总量
例如:
1、 技术笔记 2 遍
2、CSDN 技术博客 3 篇
3、 学习的 vlog 视频 1 个