Redis
Redis概述
Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。 Redis 内置了复制(replication),LUA脚本(Lua scripting), LRU驱动事件(LRU eviction),事务(transactions) 和不同级别的 磁盘持久化(persistence), 并通过Redis哨兵(Sentinel)和自动 分区(Cluster)提供高可用性(high availability)。
redis数据结构 – strings
127.0.0.1:6379> set name "zhangsan" //插入
OK //成功
127.0.0.1:6379> get name //查询
"zhangsan"
redis数据结构 – 哈希
//插入多条
127.0.0.1:6379> hset myhash abc def hij klm nop
OK
//列出哈希的内容
127.0.0.1:6379> hgetall myhash
1) "abc"
2) "def"
3) "hij"
4) "klm"
5) "nop"
redis数据结构 – lists
127.0.0.1:6379> lpush mylist "1"
(integer) 1
127.0.0.1:6379> rpush mylist "2" //在mylist右侧插入元素"2"
(integer) 2
127.0.0.1:6379> lpush mylist "0" //在mylist左侧插入元素"0"
(integer) 3
127.0.0.1:6379> lrange mylist 0 1 //列出mylist中从编号0到编号1的元素
1) "0"
2) "1"
127.0.0.1:6379> lrange mylist 0 -1 //列出mylist中所有元素
1) "0"
2) "1"
3) "2"
redis数据结构 – set集合
Redis的集合,是一种无序的集合,集合中的元素没有先后顺序。集合相关的操作也很丰富,如添加新元素、删除已有元素、取交集、取并集、取差集等。
127.0.0.1:6379> sadd myset "1" //插入
(integer) 1
127.0.0.1:6379> sadd myset "2"
(integer) 1
//列出集合myset中的所有元素
127.0.0.1:6379> smembers myset
1) "1"
2) "2"
//判断元素1是否在集合myset中,返回1表示存在
127.0.0.1:6379> sismember myset "1"
(integer) 1
//判断元素3是否在集合myset中,返回0表示不存在
127.0.0.1:6379> sismember myset "3"
(integer) 0
//新建一个新的集合yourset
127.0.0.1:6379> sadd yourset "3"
(integer) 1
127.0.0.1:6379> sadd yourset "4"
(integer) 1
//对两个集合求并集
127.0.0.1:6379> sunion myset yourset
1) "1"
2) "3"
3) "4"
4) "2"
redis数据结构-zset有序集合
同无序集合一样,存储string类型且不能重复。每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。
redis 127.0.0.1:6379> ZADD key 1 redis
(integer) 1
redis 127.0.0.1:6379> ZADD key 2 mongodb
(integer) 1
redis 127.0.0.1:6379> ZADD key 3 mysql
(integer) 1
redis 127.0.0.1:6379> ZADD key 3 mysql
(integer) 0
redis 127.0.0.1:6379> ZADD key 4 mysql
(integer) 0
redis 127.0.0.1:6379> ZRANGE key 0 10 WITHSCORES
1) "redis"
2) "1"
3) "mongodb"
4) "2"
5) "mysql"
6) "4"
redis的全局命令
查看所有键:keys ,也可以用进行模糊匹配。
键总数 dbsize
检查键是否存在:exists keyName (存在返回1,不存在返回0)
删除键:del keyName
键的数据结构类型:type key (返回string,键不存在返回nil)