redis支持丰富的数据类型,
是个非关系型数据库。以键值对存储,存在内存里,
: string、 字符
list、 列表
set、 集合
zset(sorted set)、 有序集合
hash 哈西
进入 数据库:
redis-cli
keys * 查看所有key,
set name binbin str 的操作,set key value
get name "binbin" 查看
type name string 查看类型
key只能有一个,再get name 时将覆盖原有的值,
append name abc 追加,
get name "binbinabc"
mset age 12 sex boy 多组一起输入
mget age sex 查多个
1) "12"
2) "boy"
del name 删除
(integer) 1
get name
(nil)
exists name 查看是否存在
(integer) 0 存在返回 1 不存在返回 0
expire name 21 为已有的 key 设置存活时间
(integer) 1
ttl name 查看存活时间
(integer) 17
set name aa ex 30 在创建的同间设存活时间
OK
ttl name
(integer) 27
setex name aa 30 另一种方式
OK
set read_c 0 加 1 操作
OK
incr read_c
(integer) 1
incr read_c
(integer) 2
incr read_c
(integer) 3
decr read_c 减 1 操作
(integer) 2
decr read_c
(integer) 1
incrby read_c 1000 设加多少,
(integer) 1000
decrby read_c 999 设减多少
(integer) 1
集合(元序,有序)
sadd set_1 1 2 3 3 4 1 0 4 5 6
(integer) 7
smembers set_1
1) "0"
2) "1"
3) "2"
4) "3"
5) "4"
6) "5"
7) "6"
srem set_1 6 删除,因为是元序 要指定
spop set_1 删除 随机
smove set_1 set_2 1 将 seft_1 中 1 的值移动到 set_2中
sismember set_2 1 判断该值在不在这个集合里
(integer) 1 是返回 1,否返回 0
smembers set_1
1) "0"
2) "2"
3) "3"
4) "4"
5) "5"
smembers set_2
1) "1"
2) "4"
3) "5"
4) "6"
sinter set_1 set_2 交集运算
1) "4"
2) "5"
sinterstore new set_1 set_2 交集运算后的结果放进 new 的 key 中
(integer) 2
smembers new
1) "4"
2) "5"
sunion set_1 set_2 并集运算
sunionstore news ste_1 set_2 并集运算后的结果放进 news 里
sdiff aet_1 set_2 差集运算
(empty list or set)
127.0.0.1:6379> sdiffstore s set_1 set_2 差集后的结果放进 s 中
srandmember new 随机返回
"5"
有序集合 zset
zadd zs 1 a 2 c 3 f 创建有序集合,
zrange zs 0 -1
1) "a"
2) "c"
3) "f"
127.0.0.1:6379> zrange zs 0 -1 withscores
1) "a"
2) "1"
3) "c"
4) "2"
5) "f"
6) "3"
127.0.0.1:6379> zrevrange zs 0 -1 逆序
1) "f"
2) "c"
3) "a"
127.0.0.1:6379> zrevrange zs 0 -1 withscores
1) "f"
2) "3"
3) "c"
4) "2"
5) "a"
6) "1"
127.0.0.1:6379>
zrem zs a 删除
(integer) 1
zcard zs 查看元素
(integer) 2
count zs a 查看指定元素,
hash 操作
hset user name binbin 可以理解为 user : { name: binbin }
hget user name 查看
hmset user age 15 sex boy addr chan 一次插入多组
hmget user age addr 一查看多组,
1) "15"
2) "chan"
hkeys user 查看 hash 里边的key
1) "name"
2) "age"
3) "sex"
4) "addr"
> hvals user 查看 hash 里的 values
1) "binbin"
2) "15"
3) "boy"
4) "chan"
hgetall user 查看所有 k,v
1) "name"
2) "binbin"
3) "age"
4) "15"
5) "sex"
6) "boy"
7) "addr"
8) "chan"
hlen user 查看该 hash 里有几项,
(integer) 4
type user
hash
list 列表 操作
lpush l1 1 2 左添加
(integer) 2
lpush l1 1 2 3 4
(integer) 6
lrange l1 0 -1
1) "4"
2) "3"
3) "2"
4) "1"
5) "2"
6) "1" 他不会覆盖,
rpush l1 10 右添加
(integer) 7
lrange l1 0 -1
1) "4"
2) "3"
3) "2"
4) "1"
5) "2"
6) "1"
7) "10"
llen l1
(integer) 7
lindex l1 0
"4" 索引查看,
lpop l1 左删除
"4"
rpop l1 右删除
"10"
lrem l1 1 1 指定删除,1 个 为1 的值 ,
lrem l1 1 2 指定删除 1 个为 2 的值,
lrem l1 -1 2 指定删除 从右到左删除1 个 为2的值,
lrem l1 -2 2 指定删除 从右到左 删除2个为2的值,
lrem l1 0 2 指定删除所有的 为2的值,