redis简介
redis是一个高性能的key-value内存数据库。
- 高性能:读的速度110000次/s,写的速度81000次/s
- 持久化:可将内存数据保存到磁盘中,重启后再次加载使用
- 原子性:单个操作原子性,多个操作支持事务
- 丰富的数据类型:key-value,list,set,sorted-set,hash
ubuntu下安装
ubuntu下执行以下命令安装redis:
$sudo apt-get update
$sudo apt-get install redis-server
启动redis服务器:
$ redis-server
启动redis客户端连接本地redis服务器:
$ redis-cli
以上命令将打开终端:
redis 127.0.0.1:6379>
redis的默认端口是6379
。如要连接远程的redis服务器,执行:
$ redis-cli -h host -p port -a password
redis数据类型
redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合),zset(有序集合)。
string(字符串)
最基本的数据类型。一个key最大存储512M。
127.0.0.1:6379> set name "penny"
OK
127.0.0.1:6379> get name
"penny"
hash(哈希)
hash是一个键值对集合,适合用于存储对象。
127.0.0.1:6379> hmset penny name "penny" sex "female" age 25
OK
127.0.0.1:6379> hgetall penny
1) "name"
2) "penny"
3) "sex"
4) "female"
5) "age"
6) "25"
127.0.0.1:6379> hget penny age
"25"
list(列表)
字符串列表,按照插入顺序排序,可以插入元素到列表的头部(左边)和尾部(右边)。
127.0.0.1:6379> lpush friends "bob"
(integer) 1
127.0.0.1:6379> lpush friends "alice"
(integer) 2
127.0.0.1:6379> rpush friends "lily"
(integer) 3
127.0.0.1:6379> lrange friends 0 5
1) "alice"
2) "bob"
3) "lily"
127.0.0.1:6379> lpop friends
"alice"
127.0.0.1:6379> llen friends
(integer) 2
127.0.0.1:6379> lrange friends 0 5
1) "bob"
2) "lily"
set(集合)
set是string的无序集合。成员不可重复。
127.0.0.1:6379> sadd pandas "huanhuan"
(integer) 1
127.0.0.1:6379> sadd pandas "tuantuan"
(integer) 1
127.0.0.1:6379> sadd pandas "yuanyuan"
(integer) 1
127.0.0.1:6379> smembers pandas
1) "yuanyuan"
2) "huanhuan"
3) "tuantuan"
127.0.0.1:6379> sismember pandas "tuantuan"
(integer) 1
127.0.0.1:6379> sismember pandas "haha"
(integer) 0
zset(有序集合)
zset(sorted-set)也是string类型的元素集合,成员不可重复。
zset每个元素关联一个double类型的分数,通过分数从小到大排序,分数可以重复。
127.0.0.1:6379> zadd family 25 panhui
(integer) 1
127.0.0.1:6379> zadd family 20 panyue
(integer) 1
127.0.0.1:6379> zadd family 18 panfeng
(integer) 1
127.0.0.1:6379> zrangebyscore family 0 5
(empty list or set)
127.0.0.1:6379> zrangebyscore family 0 30
1) "panfeng"
2) "panyue"
3) "panhui"
更多详细操作见redis官方文档。