redis数据库1-基础,redis数据库1-
1.Redis的安装和部署
启动redis的命令 1./usr/local/redis/bin/redis-server /usr/local/redis/etc/redis-conf 2./usr/local/redis/bin/redis-cli停止redis实例
1./usr/local/redis/bin/redis-cli shutdown
或者
2.pkill redis-server
其他知识点
1.解压gzip的安装包命令 tar -zxvf /redis.tar.gz
2.netstat -tunpl | grep 6379 查看6379端口有没有被占用,被占用则说明redis已启动 或者 ps -ef | grep redis
3.ctrl+c 结束当前进程
4.vi /redis.conf 命令模式转换为插入模式 i,修改配置文件,插入模式转换为命令模式ESC,保存退出:wq
2.redis数据类型(key-value)
1.string
1.设置key-value/获取value
set name huang/get name2.setnx判断key为name是否不存在,不存在返回1,新增key-value,若存在返回0,不修改value值
3.setex设置key-value的过期时间
setex color 10 red (10秒内有效)4.setrange替换,根据索引替换等长
get name huang@gmail.com setrange name 6 qq.com huang@qq.comcom5.mset设置多个键值对
mset key1 1 key2 2(key1=1,key2=2)6.msetnx设置多个键值对,若已经存在任何一个key,该语句失效
msetnx key2 2 key3 37.getrange按索引截取字符
get name huang@qq.com getrange name 0 4 huang8.mget批量获取多个value值
mget key1 key2 key39.incr递增/decr递减
get key6 cil (空) incr key6 1 incr key6 210.incrby增指定次数/decrby减少指定次数
set key6 1 incrby key6 5 611.append追加value值
set name 1 append name .net 1.net12.strlen查看value长度
set name ab strlen name 22.hashes
1.hset设置hash field为指定值
hset user:001 name huang(user:001 001号用户,可理解为一张表)2.hget获取value
hget user:001 name3.hsetnx设置表的value为指定值,若已存在返回0,失败
hsetnx user:002 name 14.hmset同时设置多个key-value
hmset user:003 name huang age 23 sex 15.hmget同时获取多个value
hmget user:003 name age sex6.hincrby增加指定次数
hset user:003 age 5 hincrby user:003 age 20 257.hexists判断key是否存在,存在返回1
hexists user:003 age8.hlen返回表中key的数量
hlen user:0039.hdel删除指定key-value
hdel user:003 age10.hkeys返回表中的所有key
hkeys user:00311.hvals返回表中所有value
hvals user:00312.hgetall返回表中所有key-value
hgetall user:0033.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,并有一个序列号属性
1.zadd向名称为key的zset添加元素及序列号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