# 一、基本操作 {#一、基本操作}
-
exists key
检查key是否存在,若key存在返回1,否则返回0 -
keys pattern
查找所有符合给定模式的key,通常用于查找key -
expire key seconds
为key设置超时时间(单位:秒),当key过期时,会被系统自动删除 -
ttl key
以秒为单位返回key的剩余生存时间(time to live),当key不存在时返回-2,当key存在未设置生存时间时返回-1 -
pttl key
这个命令和ttl类似,它以毫秒为单位返回key的剩余生存时间 -
move key db
将key移动到指定数据库中 -
type key
返回key存储的值的类型,返回none(不存在)、string(字符串)、list(列表)、set(集合)、zset(有序集合)、hash(哈希表) -
hgetall key
获取hash表中所有field的值 -
hexists key field
判断hash表中指定field是否存在,返回1;若key或field不存在则返回0 -
hget key field
获取hash表中指定field的值,key或field不存在时返回nil -
hmget key field[field...]
获取hash表中多个指定field的值,若key不存在返回空,若field不存在返回nil -
hkeys key
返回hash表中的所有field,若key不存在返回空 -
hvals key
返回hash表中的所有val,若key不存在返回空 -
hdel key field[field...]
删除hash表中指定field,若key或field不存在则会忽略 -
hset key field value
将field-value设置到hash表中,若key不存在会新建hash表再赋值,若field已存在则会覆盖现有值 -
hsetnx key field value
和hset类似,但是hsetnx要求field不存在才能进行此操作,否则会返回0 -
cmd进入redis命令:
redis-cli -p 6381
连接从服务器:slaveof 127.0.0.1 6381
# 二、redis的基础概念 {#二、redis的基础概念}
-
redis是使用C语言编写,遵守BSD协议,可基于内存可持久化的日志型。主要是用于数据库,缓存和消息的中间件。
-
redis的下载地址 (opens new window)(偶数正式版,奇数为开发版)
-
查看进程的端口:
ps -ef | gref XXX(redis) kill 进程号
-
redis的特点以及和memcached的区别?
- redis基本内容,可持久化,速度快
- redis和memcached都是内存对象缓存系统,速度都很快。但redis支持持久化,而memcached不支持持久化,断电后消失
- redis比memcached支持更多的数据结构(字符串、列表、集合、有序集合、哈希) ,memcached所有值都是字符串
- 在性能上由于redis使用单核,而memcached使用的是多核。所以存储小数据时,redis性能更具有优势,但数据>=100kb时,memcached性能上更具有优势。
- 在内存使用率上,只存储简单key-value时,memcached利用率更多,但redis使用hash结构来做key-value,由于此种结构需要压缩,所以他的内存利用率会更高。
- redis处理内存的方式:过期键的处理(定时删除、懒惰删除、定期删除) 和 淘汰策略 两都关系如下:
- 过期键删除策略重点强调的是对过期的键操作,如果有键过期,但内存还够,不会使用淘汰机制,这时候会使用过期键删除策略来删除过期键
- 淘汰机制强调的是对内存的操作,如果内存不够用了,即使有些键还没有到过期时间,也会进行删除操作,同时也会对没有设置过期时间的键操作
- 过期键的处理,服务器一般会使用懒惰处理和定时删除相结合
- 淘汰处理:要根据实际情况来进行配置。