redis数据库1-基础
1.Redis的安装和部署
1./usr/local/redis/bin/redis-cli shutdown
或者
2.pkill redis-server
其他知识点
2.redis数据类型(key-value)
1.string
1.设置key-value/获取value
2.setnx判断key为name是否不存在,不存在返回1,新增key-value,若存在返回0,不修改value值
3.setex设置key-value的过期时间
4.setrange替换,根据索引替换等长
5.mset设置多个键值对
6.msetnx设置多个键值对,若已经存在任何一个key,该语句失效
7.getrange按索引截取字符
8.mget批量获取多个value值
9.incr递增/decr递减
10.incrby增指定次数/decrby减少指定次数
11.append追加value值
12.strlen查看value长度
2.hashes
1.hset设置hash field为指定值
2.hget获取value
3.hsetnx设置表的value为指定值,若已存在返回0,失败
4.hmset同时设置多个key-value
5.hmget同时获取多个value
6.hincrby增加指定次数
7.hexists判断key是否存在,存在返回1
8.hlen返回表中key的数量
9.hdel删除指定key-value
10.hkeys返回表中的所有key
11.hvals返回表中所有value
12.hgetall返回表中所有key-value
3.list
redis list为链表结构,key可理解为表名,可向表头或表尾添加、删除数据,可为栈,也可为队列。
1.lpush从头部压入元素
lpush list1 hello
lpush list1 world
lrange list1 0 -1
world
hello
2.rpush从尾部压入元素
rpush list2 lijie
rpush list2 2
lrange list2 0 -1
lijie
2
3.linsert ... before 向中间插入元素
lpush list3 one
lpush list3 two
linsert list3 before one three
lrange list3 0 -1
two
three
one
4.Lset设置制定下标的值
rpush list4 hello
lset list4 0 world
lrange list4 0 -1
world
5.lrem删除n个相同元素
lpush list5 one
lpush list5 one
lpush list5 one
rpush list5 three
lrem list5 3 one
lrange list5 0 -1
three
6.ltrim n m 删除不在n-m下标范围内的元素
rpush list6 one
rpush list6 two
rpush list6 three
rpush list6 four
ltrim list6 1 2
lrange list6 0 -1
two
three
7.lpop从头部删除元素
rpush list7 one
rpush list7 two
rpush list7 three
lpop list7
lrange list7 0 -1
two
three
8.rpop从尾部删除元素
rpop list7
lrange list7 0 -1
two
9.rpoplpush从第一个list尾部弹出元素压入第二个list头部
rpoplpush list8 list9
10.lindex返回该下标(索引)的值
lrange list10 0 -1
three
two
lindex list10 0
three
lindex list10 1
two
11.llen返回该list元素个数
rpush list11 one
rpush list11 two
llen list11
2
4.set是string类型无序集合
1.sadd向名称为key的set中添加元素,不允许重复
sadd myset1 one
sadd myset1 two
sadd myset1 two
smembers myset1
two
one
2.srem删除名称为key的set中的元素
sadd myset2 one
sadd myset2 two
srem myset2 two
smembers myset2
one
3.spop随机弹出一个元素,并删除
sadd myset3 one
sadd myset3 two
sadd myset3 three
spop myset3
two
spop myset3
three
smembers myset3
one
4.sdiff返回所有给定key与第一个key的差集(第一个set比第二个多的元素)
smembers myset1
one
two
smsmbers myset2
one
three
sdiff myset1 myset2
two
sdiff myset2 myset1
three
5.sdiffstore返回与4一样的差集,并存为另一个key
sdiffstore myset5 myset1 myset2
smembers myset5
two
6.sinter返回所有给定key的交集
smembers myset1
one
two
smsmbers myset2
one
three
sinter myset1 myset2one
7.sinterstore将6的交集存为另一个key
sinterstore myset6 myset1 myset2
smembers myset6 one
8.sunion返回所有给定key的并集
smembers myset1
one
two
smembers myset2
two
three
sunion myset1 myset2
one
three
two
9.sunionstore将8的并集存为另一个Key
sunionstore myset9 myset1 myset2
smembers myset9
two
one
three
10.smove a b one 将a里的one元素移动到b
smembers myset2
three
two
smove myset2 myset7 three
smembers myset7
three
smembers myset2
two
11.scard返回名称为Key的元素的个数
smembers myset2
three
two
scard myset2
2
12.sismembers测试一个元素是否为一个set的元素
smembers myset2
two
sismembers myset2 two
1
sismembers myset2 one
0
13.srandmember随机返回一个元素,不删除
smembers myset7
two
one
three
sranfmembers myset7
one
5.zet有序的set,并有一个***属性
zadd myzset1 1 one
zadd myzset1 2 two
zadd myzset1 3 two
zrange myzset1 0 -1 withscores
one
1
two
3
2.zrem删除zset中的元素
zrange myzset1 0 -1 withscores
one
1
two
3
zrem myzset1 two
zrange myzset1 0 -1 withscores
one
1
3.zincrby若已经存在该元素,则+***,若不存在,则新增
zrange myzset1 0 -1 withscores
one
1
zincrby myzset1 2 one
zrange myzset1 0 -1withscores
one
3
4.zrank返回名称为key的zset中元素的索引值
zrange myzset2 0 -1 withscores
one
1
two
2
zrank myzset2 two
1
5.zrevrank与4相反找索引值
zrank myzset2 two
0
6.zrevrange与zrange相反排序
7.zrankbyscore去范围内***的所有数据
zrange myzset3 0 -1 withscores
one
1
two
2
three
3
zrangebyscore myzset3 2 3 withscore
two
2
three
3
8.zcount返回给定范围内***的元素数量
zcount myzet3 2 3
2
9.zcard返回该zset内所有元素的数量
zcard myzset3
3
10.zremrangebyrank删除给定索引范围的所有元素
zrange myzset10 0 -1 withscores
one
1
two
2
three
3
zremrangebyrank myzset10 1 2
zrange myzset10 0 -1 withscores
one
1
11.zremrangebyscore 删除给定***范围内的所有元素
zrange myzset11 0 -1 withscores
one
1
two
2
three
3
zremrangbyscore myzset11 1 2zrange myzset11 0 -1 withscores
three
3