redis五种数据操作及常用命令

学习目标:

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 个

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值