Redis单机版体验
by 伊布
接触到Redis是因为某天同事告诉说我的某集群里的一台服务器的redis服务有未授权漏洞,可以直接访问redis服务,甚至将自己的公钥写入该用户的~/.ssh/authorized_keys
中,直接登录到该服务器上。
这个漏洞其实是很早之前就有,具体可以参照阿里云上的介绍。
介绍
Redis的几个特点:
- 内存key-value数据库,性能很好;也可以将数据持久化到磁盘中,不过想来不会太美
- 开源,使用c编码,总共40K+
- 数据可以复制到任意数量的从服务器中,可以做分布式
- 支持的数据类型丰富,如字符串、Hash、集合、列表、有序列表、地理空间、订阅
- 原子操作,支持事务
- 支持lua脚本
Redis可以用做数据库、缓存、消息队列。
安装
ubuntu可以直接apt-get安装,centos6上还需要源码安装,比较简单。Redis比较特别的一点是它不会拷贝redis.conf到/etc/下,要手工拷贝,并且默认配置是不开认证的。
使用
类似mysql,Redis以Daemon形式提供服务,用户可以使用redis-cli命令行工具,或者桌面的Redis Desktop Manager登录到Redis服务上来操作数据。 下面贴几行Redis操作的例子。
#String
redis 127.0.0.1:6379> SET mykey "heihei"
OK
redis 127.0.0.1:6379> GET mykey
"heihei"
#hash
redis 127.0.0.1:6379> HMSET myhash name "xiaoming" age 8 gen male
OK
redis 127.0.0.1:6379> HMGET myhash name
1) "xiaoming"
#集合
redis 127.0.0.1:6379> SADD myset aaa
(integer) 1
redis 127.0.0.1:6379> SADD myset bbb
(integer) 1
redis 127.0.0.1:6379> SADD myset aaa
(integer) 0
redis 127.0.0.1:6379> SADD myset ccc
(integer) 1
redis 127.0.0.1:6379> SMEMBERS myset
1) "bbb"
2) "ccc"
3) "aaa"
感受下就好了,还有其他的类型。Redis没有表的概念,但是可以分为多个DB。
编码
Java开发者可以使用Jedis包来操作Redis。
以上详细内容都可以比较方便的Google到,就不在这做搬运工了。
越来越水,我都不能原谅自己了
Subscribe via RSS