redis小记
Redis是一个key-value存储系统。和 Memcached类似,但是解决了断电后数据完全丢失的情况(因为它还可以支持持久化),Redis 是一款依据BSD开源协议发行的高性能Key-Value存储系统(cache and store)。它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(hashes), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作, 而且这些操作都是原子性的。
更多学习可以参考 http://www.cnblogs.com/yanghuahui/p/3696400.html
今天碰到的一点redis小问题,记录一下。一台服务器上的redis没有密码,虽然只是测试环境,但是为了安全,还是决定要重新启动一个带密码的redis实例,以替代原来的。
原来的redis是2.8.8版本,换了最新的3.0.5,将压缩包放到同一目录下之后解压,然后在3.0.5目录下执行makeinstall。
因为之前的已经配置成开机启动,可以直接用redis-server启动命令,所以想通过指定3.0.5的redis.conf文件启动一个3.0.5的redis实例,但是当时因为conf文件中路径问题,一直没有启动成功,转而以redis-server --port 6380 启动了一个redis进程,但是显示的居然是3.0.5版本,因为这种没有指定conf文件的启动进程是按照默认conf启动的,默认的conf应该是之前2.8.8。
后来一想,应该是服务器上的redis被3.0.5给覆盖了的原因吧?
将新的conf里面的各种路径都配置完成后,启动成功。主要配置有
1. Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程
daemonize no
2. 当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定
pidfile /var/run/redis.pid
3. 指定Redis监听端口,默认端口为6379,作者在自己的一篇博文中解释了为什么选用6379作为默认端口,因为6379在手机按键上MERZ对应的号码,而MERZ取自意大利歌女Alessia Merz的名字
port 6379
4. 绑定的主机地址
bind 127.0.0.1
5.当 客户端闲置多长时间后关闭连接,如果指定为0,表示关闭该功能
timeout 300
6. 指定日志记录级别,Redis总共支持四个级别:debug、verbose、notice、warning,默认为verbose
loglevel verbose
7. 日志记录方式,默认为标准输出,如果配置Redis为守护进程方式运行,而这里又配置为日志记录方式为标准输出,则日志将会发送给/dev/null
logfile stdout
8. 设置数据库的数量,默认数据库为0,可以使用SELECT <dbid>命令在连接上指定数据库id
databases 16
9. 指定本地数据库文件名,默认值为dump.rdb
dbfilename dump.rdb
10. 指定本地数据库存放目录
dir ./
11. 设置Redis连接密码,如果配置了连接密码,客户端在连接Redis时需要通过AUTH <password>命令提供密码,默认关闭
requirepass foobared
更多配置,请参考http://www.cnblogs.com/wenanry/archive/2012/02/26/2368398.html
然后,redis-cli -p 6380启动客户端,即可进行redis的使用,更多redis命令也可以学习第一个链接。