set mset get mget setex // incr decr incrby decrby // append strlen // keys exists type del expire ttl 17
hset hget hmset hmget hgetall hkeys hvals hlen //hexists hdel hstrlen 11
lpush rpush linsert lset rpop lpop // lrange ltrim llen lindex 10
sadd smembers scard // sinter sdiff sunion //sismember 7
zadd zrange zcard zcount zscore 5
dump序列化 move移动到其他数据库 persist 用于移除给定 key 的过期时间,使得 key 永不过期 pttl
auth 密码 redis-server redis.conf(配置文件)连接服务器 redis-cli -h 192.168.15.40 连接客户端
string 字符串
string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。
string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。
string类型是Redis最基本的数据类型,一个键最大能存储512MB
C:\Users\Administrator>redis-cli -h 192.168.15.40
192.168.15.40:6379> set id 1
OK
192.168.15.40:6379> get id
"1"
192.168.15.40:6379> mset name lzj gender nv age 20
OK
192.168.15.40:6379> mget id name gender age
1) "1"
2) "lzj"
3) "nv"
4) "20"
192.168.15.40:6379> setex addr 10 zhengzhou
OK
192.168.15.40:6379> get addr
"zhengzhou"
192.168.15.40:6379> get addr
(nil)
192.168.15.40:6379> incr age
(integer) 21
192.168.15.40:6379> incrby age 10
(integer) 31
192.168.15.40:6379> decr age
(integer) 30
192.168.15.40:6379> decrby age 20
(integer) 10
192.168.15.40:6379> append addr zhengzhou
(integer) 9
192.168.15.40:6379> strlen addr
(integer) 9
192.168.15.40:6379> strlen age
(integer) 2
192.168.15.40:6379> keys *a*
1) "age"
2) "addr"
3) "name"
192.168.15.40:6379> exists age id name addr
(integer) 4
192.168.15.40:6379> exists age id name addr aa
(integer) 4
192.168.15.40:6379> type id
string
192.168.15.40:6379> del addr
(integer) 1
192.168.15.40:6379> get addr
(nil)
192.168.15.40:6379> mget gender age
1) "nv"
2) "10"
192.168.15.40:6379> del gender age
(integer) 2
192.168.15.40:6379> mget gender age
1) (nil)
2) (nil)
192.168.15.40:6379> expire name 10
(integer) 1
192.168.15.40:6379> ttl name
(integer) 5
192.168.15.40:6379> ttl name
(integer) 2
192.168.15.40:6379> ttl name
(integer) -2
192.168.15.40:6379> exists name
(integer) 0
192.168.15.40:6379>
hash 哈希
Redis hash 是一个键值对集合。
Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。
C:\Users\Administrator>redis-cli -h 192.168.15.40
192.168.15.40:6379> hset obj name lzj
(integer) 1
192.168.15.40:6379> hget obj name
"lzj"
192.168.15.40:6379> hmset obj gender nv age 20
OK
192.168.15.40:6379> hmget obj name gender age
1) "lzj"
2) "nv"
3) "20"
192.168.15.40:6379> hgetall obj
1) "name"
2) "lzj"
3) "gender"
4) "nv"
5) "age"
6) "20"
192.168.15.40:6379> hkeys obj
1) "name"
2) "gender"
3) "age"
192.168.15.40:6379> hvals obj
1) "lzj"
2) "nv"
3) "20"
192.168.15.40:6379> hlen obj
(integer) 3
192.168.15.40:6379> hexists obj name
(integer) 1
192.168.15.40:6379> hexists obj aaa
(integer) 0
192.168.15.40:6379> hdel obj gender
(integer) 1
192.168.15.40:6379> hexists obj gender
(integer) 0
192.168.15.40:6379> hstrlen obj name
(integer) 3
192.168.15.40:6379>
list 列表
Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素导列表的头部(左边)或者尾部(右边)。
C:\Users\Administrator>redis-cli -h 192.168.15.40
192.168.15.40:6379> lpush list 3 2 1
(integer) 3
192.168.15.40:6379> rpush list 4 5 6
(integer) 6
192.168.15.40:6379> linsert list after 3 3.5
(integer) 7
192.168.15.40:6379> linsert list before 3 2.5
(integer) 8
192.168.15.40:6379> lset list 0 10
OK
192.168.15.40:6379> rpop list
"6"
192.168.15.40:6379> lpop list
"10"
192.168.15.40:6379> lrange list 0 4
1) "2"
2) "2.5"
3) "3"
4) "3.5"
5) "4"
192.168.15.40:6379> ltrim list 2 3
OK
192.168.15.40:6379> lrange list 0 4
1) "3"
2) "3.5"
192.168.15.40:6379> llen list
(integer) 2
192.168.15.40:6379> lindex list 1
"3.5"
192.168.15.40:6379>
set 集合 (无序集合)
Redis的Set是string类型的无序集合。
集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。
C:\Users\Administrator>redis-cli -h 192.168.15.40
192.168.15.40:6379> sadd s1 a b c
(integer) 3
192.168.15.40:6379> smembers s1
1) "c"
2) "b"
3) "a"
192.168.15.40:6379> scard s1
(integer) 3
192.168.15.40:6379> sadd s2 c d e
(integer) 3
192.168.15.40:6379> sinter s1 s2
1) "c"
192.168.15.40:6379> sdiff s1 s2
1) "b"
2) "a"
192.168.15.40:6379> sdiff s2 s1
1) "e"
2) "d"
192.168.15.40:6379> sunion s1 s2
1) "b"
2) "a"
3) "c"
4) "e"
5) "d"
192.168.15.40:6379> sismember s1 a
(integer) 1
192.168.15.40:6379> sismember s1 aa
(integer) 0
192.168.15.40:6379>
zset (有序集合)
Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。
zset的成员是唯一的,但分数(score)却可以重复。
C:\Users\Administrator>redis-cli -h 192.168.15.40
192.168.15.40:6379> zadd zs1 10 a
(integer) 0
192.168.15.40:6379> zadd zs1 10 a
(integer) 1
192.168.15.40:6379> zadd zs1 20 b
(integer) 1
192.168.15.40:6379> zadd zs1 30 c 1 d
(integer) 2
192.168.15.40:6379> zrange zs1 0 3
1) "d"
2) "a"
3) "b"
4) "c"
192.168.15.40:6379> zcard zs1
(integer) 4
192.168.15.40:6379> zcount zs1 0 100
(integer) 4
192.168.15.40:6379> zcount zs1 20 25
(integer) 1
192.168.15.40:6379> zcount zs1 25 30
(integer) 1
192.168.15.40:6379> zscore zs1 a
"10"
192.168.15.40:6379>