由前台有后台的网站怎么做,网页开发应用软件,做电商有哪些平台,罗店网站建设前提#xff1a;#xff08;key代表键#xff09; Redis常用的命令 命令作用keys *查看当前库所有的keyexists key判断某个key是否存在type key查看key是什么类型del key 删除指定的keyunlink key非阻塞删除#xff0c;仅仅将keys从keyspace元数据中删除#xff0c;真正的…前提key代表键 
Redis常用的命令 命令作用keys *查看当前库所有的keyexists key判断某个key是否存在type key查看key是什么类型del key 删除指定的keyunlink key非阻塞删除仅仅将keys从keyspace元数据中删除真正的删除会在后续异步中操作。ttl key 查看还有多少秒过期-1表示永不过期-2表示已过期expire key 秒钟为给定的key设置过期时间move key dbindex[0-15]将当前数据库的key移动到给定的数据库db中select dbindex[0-15]切换数据库【0-15】,默认为0dbsize查看当前数据库key的数量flushdb清空当前库慎用flushall通杀全部库慎用 两个删除操作的区别unlink key  和 del keydel key是同步操作执行时会立即阻塞当前线程直到键被删除完成。unlink key是异步操作它发起删除请求后不会阻塞线程而是让删除操作在后台进行不会立即返回键是否已成功删除。这样在处理大量键删除时可以避免阻塞导致性能下降。 
1.Redis字符串String 
string是redis最基本的类型一个key对应一个value一个redis中字符串value最多可以是512M 
string类型是二进制安全的意思是redis的string可以包含任何数据比如jpg图片或者序列化的对象 。 
1设置键值对 
set key value [NX|XX] [GET] [EX seconds|PX milliseconds|EXAT unix-time-seconds|PXAT unix-time-milliseconds|KEEPTTL] 相关参数介绍  NX不存在时创建 
XX存在时创建会覆盖前面的值相当于修改k的值 
2keepttl作用修改一个k的值会将原来的过期时间覆盖值变了但是过期时间也变了keepttl可以保留原来的过期时间只改变值但是过期时间不变 
例keepttl的使用 
127.0.0.1:6379 set k1 v1 ex 30 设置k1过期时间为30s
OK
127.0.0.1:6379 set k1 v1kppl keepttl 修改k1的值后面使用keepttl 
OK
127.0.0.1:6379 ttl k1  获取k1过期时间
(integer) 8
127.0.0.1:6379 get k1
v1kppl 
3在Java代码中获取当前Unix时间 System.out.println(Long.toString(System.currentTimeMillis()/1000L)); 
4同时设置获取多个值mset 
使用 
127.0.0.1:6379 mset k1 v1 k2 v2
OK 
127.0.0.1:6379 keys *
1) k2
2) k1
127.0.0.1:6379 msetnx k2 v2 k3 v3   ----------失败
(integer) 0
127.0.0.1:6379 keys *
1) k2
2) k1注意msetnx与事务类似同成功同失败NX不存在时创建但是k2已经存在 
5获取和设置指定区间范围内的值getrange 和 setrange  
使用 
127.0.0.1:6379 get k1
abcdefghijk
127.0.0.1:6379 getrange k1 0 -1    0到-1代表全部
abcdefghijk
127.0.0.1:6379 getrange k1 0 3
abcd
127.0.0.1:6379 setrange k1 1 xxxx
(integer) 11
127.0.0.1:6379 get k1
axxxxfghijk 
6数值增减incr  、incrby  、decr 、decrby 
例如 
127.0.0.1:6379 set k1 100
OK
127.0.0.1:6379 get k1
100
127.0.0.1:6379 incr k1
(integer) 101
127.0.0.1:6379 incr k1
(integer) 102
127.0.0.1:6379 incrby k1 3  指定每次增加多少
(integer) 105
127.0.0.1:6379 incrby k1 3
(integer) 108
127.0.0.1:6379 decr k1
(integer) 107
127.0.0.1:6379 decr k1
(integer) 106
127.0.0.1:6379 decrby k1 3  指定每次减少多少
(integer) 103
127.0.0.1:6379 decrby k1 3
(integer) 100 
7获取字符串长度和追加str 、appebd 
例如 
127.0.0.1:6379 set k1 abcd
OK
127.0.0.1:6379 get k1
abcd
127.0.0.1:6379 strlen k1
(integer) 4
127.0.0.1:6379 append k1 xxxx
(integer) 8
127.0.0.1:6379 get k1
abcdxxxx 
8分布式锁setex key 过期时间 value 还有setnx 
第一步set key value 
第二步expire k 过期时间 
上面的两个加起来等同于setex key 过期时间 value 
例 
127.0.0.1:6379 set k1 v1
OK
127.0.0.1:6379 expire k1 10
(integer) 1
127.0.0.1:6379 ttl k1
(integer) 6
127.0.0.1:6379 ttl k1
(integer) 2
127.0.0.1:6379 setex k1 10 vll
OK
127.0.0.1:6379 ttl k1
(integer) 0
127.0.0.1:6379 setnx k1 v11
(integer) 1
127.0.0.1:6379 get k1
v11
127.0.0.1:6379 setnx k1 v11
(integer) 0 
9先获取再设置值getset 
127.0.0.1:6379 getset k1 haha  先获取到原来的值v11再修改为haha
v11
127.0.0.1:6379 get k1
haha 
注意getset命令等同于 set key value get ,例 
127.0.0.1:6379 get k1
aaa
127.0.0.1:6379 set k1 haha get
aaa
127.0.0.1:6379 get k1
haha 
2.Redis列表List 
Redis列表是简单的字符串列表按照插入顺序排序。你可以添加一个元素到列表的头部左边或者尾部右边 它的底层实际是个双端链表最多可以包含 2^32 - 1 个元素 (4294967295, 每个列表超过40亿个元素) 
1创建和遍历列表(lpush 、rpush、lrange) 
127.0.0.1:6379 LPUSH list1 1 2 3 4 5 6  从左边加入
(integer) 6
127.0.0.1:6379 RPUSH list2 1 2 3 4 5 6  从右边加入
(integer) 6
127.0.0.1:6379 LRANGE list1 0 -1  遍历
1) 6
2) 5
3) 4
4) 3
5) 2
6) 1
127.0.0.1:6379 LRANGE list2 0 -1   遍历
1) 1
2) 2
3) 3
4) 4
5) 5
6) 6 
2弹出元素lpop、rpop 
127.0.0.1:6379 LPOP list1  左边弹出一个
6
127.0.0.1:6379 RPOP list1  右边弹出一个
1
127.0.0.1:6379 LRANGE list1 0 -1
1) 5
2) 4
3) 3
4) 2 
3从上到下获取指定的元素lindex 
127.0.0.1:6379 LINDEX list1 2
3
127.0.0.1:6379 LINDEX list1 0
5 
4获取列表中元素的个数llen 
127.0.0.1:6379 LLEN list1
(integer) 4 
5删除N个值等于v1的元素lrem key 数字N 给定的值v1 
127.0.0.1:6379 lpush list1 1 1 1 2 2 2 3 4 5 6
(integer) 10
127.0.0.1:6379 lrem list1 2 2  删除2个2
(integer) 2
127.0.0.1:6379 lrange list1 0 -1
1) 6
2) 5
3) 4
4) 3
5) 2
6) 1
7) 1
8) 1 
6截取指定范围的值再赋值给keyltrim key 开始index 结束index 
127.0.0.1:6379 lrange list1 0 -1
1) 6
2) 5
3) 4
4) 3
5) 2
6) 1
127.0.0.1:6379 ltrim list1 0 2
OK
127.0.0.1:6379 lrange list1 0 -1
1) 6
2) 5
3) 4 
7将列表key1中的值加到列表key2中去rpoplpush 列表key1 列表key2 
127.0.0.1:6379 lrange list2 0 -1
1) 1
2) 2
3) 3
4) 4
5) 5
6) 6 
127.0.0.1:6379 rpoplpush list1 list2 将list1中的4加到list2中去
4
127.0.0.1:6379 lrange list1 0 -1
1) 6
2) 5
127.0.0.1:6379 lrange list2 0 -1
1) 4
2) 1
3) 2
4) 3
5) 4
6) 5
7) 6 
8修改某个索引处的值lset key index value 
127.0.0.1:6379 lset list2 2 9  将索引2的值改为9
OK
127.0.0.1:6379 lrange list2 0 -1
1) 4
2) 1
3) 9
4) 3
5) 4
6) 5
7) 6 
9插入新的值linsert key before/after 已有的值 插入新的值 
127.0.0.1:6379 lrange list2 0 -1
1) 4
2) 1
3) 9
4) 3
5) 4
6) 5
7) 6
127.0.0.1:6379 linsert list2 after 9 10 在9后面加一个10
(integer) 8
127.0.0.1:6379 lrange list2 0 -1
1) 4
2) 1
3) 9
4) 10
5) 3
6) 4
7) 5
8) 6 
默认插入前一个 
127.0.0.1:6381 linsert keylist after 3 6
(integer) 5
127.0.0.1:6381 lrange keylist 0 -1  keylist里面有两个3只在第一个3后面加入了6
1) 3
2) 6
3) 2
4) 3
5) 13.Redis哈希Hash 
简单说就是MapString,MapObject,Object Redis hash 是一个 string 类型的 field字段 和 value值 的映射表hash 特别适合用于存储对象。 Redis 中每个 hash 可以存储 2^32 - 1 键值对40多亿 
1hset为一个键赋值hget获取值 
127.0.0.1:6381 hset user1 name tom age 18
(integer) 2127.0.0.1:6381 hget user1 name
tom2hmset为多个属性赋值hmget获取多个属性的值 
127.0.0.1:6381 hmset user2 name jack age 19
OK
127.0.0.1:6381 hmget user2 name age
1) jack
2) 193hgetall获取全部hdel删除某个属性 
127.0.0.1:6381 hgetall user2
1) name
2) jack
3) age
4) 19
127.0.0.1:6381 hdel user1 name
(integer) 14hlen获取key的长度 
127.0.0.1:6381 hlen user2
(integer) 25hexists key判断key中有没有某一个属性 
127.0.0.1:6381 hexists user2 name
(integer) 1
127.0.0.1:6381 hexists user2 email
(integer) 06hkeys获取全部的属性 hvals获取全部属性对应的值 
127.0.0.1:6381 hkeys user2
1) name
2) age
127.0.0.1:6381 hvals user2
1) jack
2) 197hincrby属性增加hincrbyfloat增加小数 
127.0.0.1:6381 hincrby user2 age 2
(integer) 21
127.0.0.1:6381 hget user2 age
21
127.0.0.1:6381 hincrbyfloat user2 age 2.3
23.3
127.0.0.1:6381 hget user2 age
23.34.Redis集合Set 
无重复 
1sadd key member1 【member2】:向集合中加入多个成员 
127.0.0.1:6381 sadd set1 1 1 2 2 3 4 5 6
(integer) 6
127.0.0.1:6381 sadd set2 3 4 5 6 7 8
(integer) 62scard key  获取集合成员数 
127.0.0.1:6381 scard set1
(integer) 63sdiff key1 【key2】返回给定集合的差集 
127.0.0.1:6381 sdiff set1 set2
1) 1
2) 24sdiffstore destination key1 【key2】返回给定集合的差集并存储到destination中 
127.0.0.1:6381 sdiffstore set3 set1 set2   将结果放入set3
(integer) 25sinter key1 【key2】返回给定集合的交集 
127.0.0.1:6381 sinter set1 set2
1) 3
2) 4
3) 5
4) 66sinterstore destination key1【key2】返回给定集合的交集并存储到destination中 
127.0.0.1:6381 sinterstore set3 set1 set2
(integer) 47sismember key member判断member是不是key的成员 
127.0.0.1:6381 sismember set1 1
(integer) 1 8smembers key返回集合中全部的成员 
127.0.0.1:6381 smembers set1
1) 1
2) 2
3) 3
4) 4
5) 5
6) 6 9smove source destination member 将member元素从source集合移动到destination中 
127.0.0.1:6381 smove set2 set1 8
(integer) 1
127.0.0.1:6381 smembers set1
1) 1
2) 2
3) 3
4) 4
5) 5
6) 6
7) 8 
10spop key 【count】 移除并返回集合中的某count个元素返回并删除 
127.0.0.1:6381 spop set1 
5
127.0.0.1:6381 spop set1 2
1) 4
2) 8 
11srandmember key 【count】返回集合中一个或多个随机数但是并未删除 
127.0.0.1:6381 srandmember set1 2
1) 3
2) 6 
12srem key member1 【member2】移除集合中一个或多个成员 
127.0.0.1:6381 srem set1 1 2
(integer) 2
127.0.0.1:6381 smembers set1
1) 3
2) 6 
13sunion key1 【key2】返回给定集合的并集 
127.0.0.1:6381 sunion set1 set2
1) 3
2) 4
3) 5
4) 6
5) 7 
14sunionstore destination key1 【key2】返回给定集合的并集存在destination中 
127.0.0.1:6381 sunionstore set4 set1 set2
(integer) 5
127.0.0.1:6381 smembers set4
1) 3
2) 4
3) 5
4) 6
5) 7