天津建站方案,企业型网站建设咨询电话,品牌推广策划营销策划,正规网站建设费用2019独角兽企业重金招聘Python工程师标准 登录Redis数据库 [rootlocalhost bin]# /usr/local/redis/bin/redis-cli String类型 String 数据结构是简单的key-value类型#xff0c;value其实不仅是String#xff0c;也可以是数字#xff0c;是包含很多种类型… 2019独角兽企业重金招聘Python工程师标准 登录Redis数据库 [rootlocalhost bin]# /usr/local/redis/bin/redis-cli String类型 String 数据结构是简单的key-value类型value其实不仅是String也可以是数字是包含很多种类型的特殊类型并且是二进制安全的。比如序列化的对象进行存储比如一张图片进行二进制存储比如一个简单的字符串,数值等等。 常用命令 设值set name zhangsan (说明多次设置name会覆盖) setnx name lisi (not exist) 如果name不存在则设值。如果name存在则不设值并返回0 setex name 10 lisi :(expired) 设置name的值为lisi过期时间为10秒10秒后name清除key也清除 setrange string range value 替换字符串 例如set address abcdefg setrange address 2 yy 后address的值为abyyefg 从第3个字符开始替换为yy后面的由原来 的字符补齐。 取值: get name 删值del name 批量写mset k1 v1 k2 v2 ... 批量读mget k1 k2 k3 一次性设值和读取返回旧值写上新值:getset name lily 数值类型自增减incrdecrincrbydecrby 127.0.0.1:6379 set a 1
OK
127.0.0.1:6379 incr a
(integer) 2
127.0.0.1:6379 incr a
(integer) 3
127.0.0.1:6379 get a
3
127.0.0.1:6379 desc a
(error) ERR unknown command desc
127.0.0.1:6379 decr a
(integer) 2
127.0.0.1:6379 get a
2
127.0.0.1:6379 incrby a 4
(integer) 6
127.0.0.1:6379 incrby a 2
(integer) 8
127.0.0.1:6379 decrby a 4
(integer) 4 字符串拼接append name abc 在namelisi原有基础上拼接为 lisiabc 字符串长度strlen name 返回name的字符长度 Hash类型 Hash类型是String类型的field和value的映射表或者说是一个String集合。它特别适合存储对象相比较而言将一个对象类型存储在Hash类型要存储在String类型里占用更少的内存空间并方整个对象的存取。 常用命令 设值hset hashname field valuehset是设值命令hashname是集合名字field是字段名value是值 例子hset user1 name zhangsan hset user1 age 23 取值hget hashname field 批量设置hmset hashname field1 value1 field2 value2 …. 例子hmset user2 name lisi age 22 批量取值hmget hashname field1 field2 ... hsetnx和setnx大同小异 集合递增和递减hincrby和hdecrby 127.0.0.1:6379 hgetall user1
1) age
2) 23
3) name
4) zhangsan
127.0.0.1:6379 hincrby user1 age 2
(integer) 25
127.0.0.1:6379 hgetall user1
1) age
2) 25
3) name
4) zhangsan hexists是否存在key如果存在返回不存在返回0 127.0.0.1:6379 hexists user1 age
(integer) 1
127.0.0.1:6379 hexists user1 sex
(integer) 0 删除hdel 删除指定的hash的field 127.0.0.1:6379 hdel user1 name
(integer) 1
127.0.0.1:6379 hgetall user1
1) age
2) 23 hlen返回hash集合里的所有的键数值(size) 127.0.0.1:6379 hlen user1
(integer) 2 hkeys 返回hash里所有的字段 127.0.0.1:6379 hkeys user1
1) name
2) age hvals返回hash的所有value 127.0.0.1:6379 hvals user1
1) zhangsan
2) 23 hgetall返回hash里所有的key和value 127.0.0.1:6379 hgetall user1
1) name
2) zhangsan
3) age
4) 23 List类型 List类型是一个链表结构的集合其主要功能有push、pop、获取元素等。更详细的说List类型是一个双端链表的节后我们可以通过相关的操作进行集合的头部或者尾部添加和删除元素List的设计非常简单精巧即可以作为栈又可以作为队列满足绝大多数的需求。 常用命令 lpush从头部加入元素栈先进后出 127.0.0.1:6379 lpush list1 hello
(integer) 1
127.0.0.1:6379 lpush list1 world
(integer) 2
127.0.0.1:6379 lrange list1 0 -1
1) world
2) hello rpush从尾部加入元素队列先进先出 127.0.0.1:6379 rpush list1 java
(integer) 3
127.0.0.1:6379 lrange list1 0 -1
1) world
2) hello
3) java linsert插入元素 127.0.0.1:6379 linsert list1 before hello php
(integer) 4
127.0.0.1:6379 lrange list1 0 -1
1) world
2) php
3) hello
4) java
127.0.0.1:6379 linsert list1 after hello php
(integer) 5
127.0.0.1:6379 lrange list1 0 -1
1) world
2) php
3) hello
4) php
5) java lset将制定下表的元素替换掉 127.0.0.1:6379 lset list1 0 k
OK
127.0.0.1:6379 lrange list1 0 -1
1) k
2) php
3) hello
4) php
5) java lrem删除元素移除n个返回删除的个数n 127.0.0.1:6379 lrem list1 1 php
(integer) 1
127.0.0.1:6379 lrange list1 0 -1
1) k
2) hello
3) php
4) java
127.0.0.1:6379 lrem list1 1 php
(integer) 1
127.0.0.1:6379 lrange list1 0 -1
1) k
2) hello
3) java ltrim保留制定key的值范围内的数据 127.0.0.1:6379 rpush list2 1
(integer) 1
127.0.0.1:6379 rpush list2 2
(integer) 2
127.0.0.1:6379 rpush list2 3
(integer) 3
127.0.0.1:6379 rpush list2 4
(integer) 4
127.0.0.1:6379 lrange list2 0 -1
1) 1
2) 2
3) 3
4) 4
127.0.0.1:6379 ltrim list2 2 -1
OK
127.0.0.1:6379 lrange list2 0 -1
1) 3
2) 4 lpop从list的头部删除元素并返回删除元素。 127.0.0.1:6379 rpush list3 a
(integer) 1
127.0.0.1:6379 rpush list3 b
(integer) 2
127.0.0.1:6379 rpush list3 c
(integer) 3
127.0.0.1:6379 rpush list3 d
(integer) 4
127.0.0.1:6379 lrange list3 0 -1
1) a
2) b
3) c
4) d
127.0.0.1:6379 lpop list3
a
127.0.0.1:6379 lrange list3 0 -1
1) b
2) c
3) d rpop从list的尾部删除元素并返回删除元素 127.0.0.1:6379 rpop list3
d
127.0.0.1:6379 lrange list3 0 -1
1) b
2) c 可以基于List实现MQ。 rpoplpush list1 list2从list1尾部删除元素并将被移除的元素添加到list的头部返回被移除的元素。 127.0.0.1:6379 lrange list2 0 -1
1) 3
2) 4
127.0.0.1:6379 rpoplpush list2 list4
4
127.0.0.1:6379 lrange list2 0 -1
1) 3
127.0.0.1:6379 lrange list4 0 -1
1) 4
127.0.0.1:6379 rpoplpush list2 list4
3
127.0.0.1:6379 lrange list2 0 -1
(empty list or set)
127.0.0.1:6379 lrange list4 0 -1
1) 3
2) 4 llen返回元素个数 127.0.0.1:6379 llen list1
(integer) 3
127.0.0.1:6379 llen list3
(integer) 2 lindex返回名称为key的list中index位置的元素 127.0.0.1:6379 lrange list3 0 -1
1) b
2) c
127.0.0.1:6379 lindex list3 0
b
127.0.0.1:6379 lindex list3 1
c
127.0.0.1:6379 lindex list3 2
(nil) Set类型 set集合是string类型的无序集合set是通过hashtable实现的对集合我们可以取交集、并集、差集。 常用命令 sadd向名称为key的set中添加元素set集合不允许重复元素。 smembers查看set集合中的元素。 127.0.0.1:6379 sadd set1 a
(integer) 1
127.0.0.1:6379 sadd set1 b
(integer) 1
127.0.0.1:6379 sadd set1 a
(integer) 0
127.0.0.1:6379 smembers set1
1) a
2) b srem删除set集合的元素 127.0.0.1:6379 srem set1 a
(integer) 1
127.0.0.1:6379 smembers set1
1) b spop随机返回删除的key 127.0.0.1:6379 sadd set1 a
(integer) 1
127.0.0.1:6379 sadd set1 c
(integer) 1
127.0.0.1:6379 sadd set1 d
(integer) 1
127.0.0.1:6379 smembers set1
1) a
2) d
3) c
4) b
127.0.0.1:6379 spop set1
d
127.0.0.1:6379 sdiff返回两个集合的不同元素哪个集合在前面就以哪个集合为标准 127.0.0.1:6379 sadd set2 a
(integer) 1
127.0.0.1:6379 sadd set2 b
(integer) 1
127.0.0.1:6379 sadd set2 c
(integer) 1
127.0.0.1:6379 sadd set3 a
(integer) 1
127.0.0.1:6379 sadd set3 d
(integer) 1
127.0.0.1:6379 sdiff set2 set3
1) b
2) c
127.0.0.1:6379 sdiff set3 set2
1) d
127.0.0.1:6379 sdiffstore将返回的不同元素存储到另一个集合里 sdiffstore set4 set2 set3 将set2 set3的比较结果保存到set4中 127.0.0.1:6379 sdiff set2 set3
1) c
2) b
127.0.0.1:6379 sdiffstore set4 set2 set3
(integer) 2
127.0.0.1:6379 smembers set4
1) c
2) b
127.0.0.1:6379 sinter取交集 sinterstore取交集后保存 sunion:取并集 sunionstore取并集后保存 127.0.0.1:6379 smembers set1
1) a
2) b
3) c
127.0.0.1:6379 smembers set3
1) a
2) d
127.0.0.1:6379 sinter set1 set3
1) a
127.0.0.1:6379 sunion set1 set3
1) a
2) c
3) b
4) d
127.0.0.1:6379 sinterstore set5 set1 set3
(integer) 1
127.0.0.1:6379 sunionstore set6 set1 set3
(integer) 4
127.0.0.1:6379 smembers set5
1) a
127.0.0.1:6379 smembers set6
1) a
2) c
3) b
4) d smove从一个set集合移动到另一个set集合里 scard查看集合里的元素个数 sismember判断某个元素是否为集合中的元素是返回1。不是返回0。 srandmember随机返回一个元素 127.0.0.1:6379 smembers set2
1) a
2) b
3) c
127.0.0.1:6379 smembers set3
1) a
2) d
127.0.0.1:6379 smove set2 set3 c
(integer) 1
127.0.0.1:6379 smembers set2
1) a
2) b
127.0.0.1:6379 smembers set3
1) a
2) c
3) d
127.0.0.1:6379 scard set2
(integer) 2
127.0.0.1:6379 scard set3
(integer) 3
127.0.0.1:6379 sismember set2 a
(integer) 1
127.0.0.1:6379 sismember set2 c
(integer) 0
127.0.0.1:6379 srandmember set2
b
127.0.0.1:6379 srandmember set2
a
127.0.0.1:6379 srandmember set2
a Zset类型 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。 有序集合的成员是唯一的,但分数(score)却可以重复。 集合是通过哈希表实现的所以添加删除查找的复杂度都是O(1)。 集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。 常用命令 zadd向有序集合中添加一个元素该元素如果存在则更新顺序如果分值相同元素不同会同事存在两个元素。 zadd key score1 member1 score2 member2... 127.0.0.1:6379 zadd zset1 1 a 2 b 4 d 3 c
(integer) 4
127.0.0.1:6379 zrange zset1 0 -1
1) a
2) b
3) c
4) d
127.0.0.1:6379 zrange zset1 0 -1 withscores
1) a
2) 1
3) b
4) 2
5) c
6) 3
7) d
8) 4
127.0.0.1:6379 zadd zset1 1.5 x //插入1.5分的 会根据分数排序
(integer) 1
127.0.0.1:6379 zrange zset1 0 -1 withscores1) a2) 13) x4) 1.55) b6) 27) c8) 39) d
10) 4
127.0.0.1:6379 zadd zset1 2 y //插入分值为2但元素为新元素y
(integer) 1
127.0.0.1:6379 zrange zset1 0 -1 withscores 1) a2) 13) x4) 1.55) b //两个分值为2的b和y都会存在6) 2 7) y 8) 29) c
10) 3
11) d
12) 4
127.0.0.1:6379 zadd zset1 5 b //重新插入重复元素b分值发生了变化移除之前的元素重新按照新的分值排序
(integer) 0
127.0.0.1:6379 zrange zset1 0 -1 withscores1) a2) 13) x4) 1.55) y6) 27) c8) 39) d
10) 4
11) b
12) 5 zrem 删除zset名称key中的member元素 zrem zset member 127.0.0.1:6379 zrange zset1 0 -1 withscores1) a2) 13) x4) 1.55) y6) 27) c8) 39) d
10) 4
11) b
12) 5
127.0.0.1:6379 zrem zset1 a
(integer) 1
127.0.0.1:6379 zrange zset1 0 -1 withscores1) x2) 1.53) y4) 25) c6) 37) d8) 49) b
10) 5 zrank 返回有序集合中指定成员的索引从小到大排序 zrevrank 返回有序集合中指定成员的排名有序集成员按分数值递减(从大到小)排序 127.0.0.1:6379 zrange zset1 0 -1 withscores1) x2) 1.53) y4) 25) c6) 37) d8) 49) b
10) 5
127.0.0.1:6379 zrank zset1 d
(integer) 3 //第4个位置
127.0.0.1:6379 zrevrank zset1 d
(integer) 1 //第2个位置 zcard 返回集合里所有元素的个数 zcount 返回集合中score在给定区间中的数量 127.0.0.1:6379 zrange zset1 0 -1 withscores1) x2) 1.53) y4) 25) c6) 37) d8) 49) b
10) 5
127.0.0.1:6379 zcard zset1
(integer) 5
127.0.0.1:6379 zcount zset1 1 3
(integer) 3 zincrby key increment member 有序集合中对指定成员的分数加上增量 increment zrangebyscore key min max [WITHSCORES] [LIMIT] 通过分数返回有序集合指定区间内的成员 zremrangebyrank key start stop 移除有序集合中给定的排名区间的所有成员 zremrangebyscore key min max移除有序集合中给定的分数区间的所有成员 转载于:https://my.oschina.net/u/3712726/blog/1554489