# 一、基础命令
info命令:- # Server:查看系统信息,包括redis的版本信息,使用的端口和process_id和依赖的gcc版本等
- # Clients:客户端连接数量等
- # Memory:内存的使用情况
- # Persistence:持久化备份的参数信息
- # State:redis状态信息
- # Replication:主从同步的相关数据
- # Keyspace:显示已有的空间及空间内的
key的数量,在redis客户端通过select index选择相应的空间,类似于选择数据库表,不同的表中存储着不同的数据
- 在
redis.conf文件中可以进行空间数量的设置,默认值为16:即可以使用的空间是0-15
flushdb命令:清除当前keyspace空间的所有键值flushall命令:清除所有keyspace空间的所有键值dbsize命令:当前keyspace的键的数量save命令:人工触发的对redis的持久化quit命令:退出当前redis客户端的连接
# 二、键命令
set key value:设置键值del key:删除键,成功则返回1,失败则返回0exists key:判断键是否存在,存在则返回1,不存在则返回0ttl key:time to leave,返回的是键的过期时间,单位时间是秒,若返回-1,则代表该键不会过期,返回-2表示该键不存在expire key time:设置键的过期时间,如expire a 10表示设置键a的过期时间为10秒type key:返回键的类型,如string,hash等randomkey:返回随机的key(键)rename key1 key2:将键名进行重命名,如key a b则将键a的名改为键b,若替换的键名存在,则会将已有的键进行覆盖,即将b的键值覆盖,得到的是key:b,value:arenamenx key1 key2:加了nx结尾的rename命令会进行一定的逻辑判断,该命令会判断该替换的键是否存在,如果存在则返回0,表示替换失败,若不存在则返回1,表示替换成功
# 三、数据结构命令
# String字符串
setex key time value:创建键的时候为键设置其有效时间,单位时间为秒,psetex设置的时间单位为毫秒getrange key start end:获取字符串的某一片段(start到end的间字段)getset key value:为key赋上新的值,返回被替换之前的值。mset key value key value:进行多个键值的设置mget key1 key2 key3:进行多个键值的获取,获取到键key1,key2,key3的值strlen key:返回键值的长度msetnx key value key value:进行批量的键设置,需要设置的键不存在才会赋值成功,该命令具有原子性,及要么全部设置成功返回1,要么都是失败返回0。incr key:将类型的Integer的键值进行加一操作incrby key number:为键值一次性加上number的数,如incr 1 100,则表示为键为1的值增加100.decr key:将类型的Integer的键值进行减一操作decrby key number:为键值一次性减去number的数append key str:为key的值加上字符串str
# Hash哈希
hset key filed value:设置哈希键值hexists key field:判断键是否存在hget key field:获取键中filed所对应的值hgetall key:获取键中所有的field和对应的valuehkeys key:获取键中 所有的filed值hvals key:获取键中所有的value值hlen key:获取键中filed的数量hmset key field name field name:批量设置键中的field和valuehmget key field field:批量获取键中field的valuehdel key field field:删除键中的多个field及其值hsetnx key field value:若存在这个field,则设置失败返回0,否则返回1
# List列表
lpush key value value:将多个value添加到key中,添加的过程是将value从链表头部一个一个插入,及最后一个加入的是在链表的头部llen key:获取key的数量lrange key startIndex stopIndex:获取key列表指定下标范围内的元素lindex index:获取指定下标的元素值lpop key:移除key列表的首个(头)元素rpop key:移除key列表的最后(末尾)元素
# Set集合
sadd key value value:将多个value加入key集合中scard key:返回集合中的数量smembers key:返回集合中的所有成员sdiff key1 key2:返回key1与key2的差值,即key1减去ke1和key2中共同存在的元素sinter key1 key2:返回key1与key2的交集sunion key1 key2:返回key1与key2的并集srandmember key1 number:返回集合中的随机的number个数sismember key member:判断member是否为集合key中的元素,是则返回1,不是则返回0srem key value value:移除集合中的多个元素spop key:随机移除并返回移除的元素
# Sortedset有序集合
zadd key score member score member:为有序集合添加多个成员元素,score为member的值,且集合按score的值进行排序zcard key:返回集合中成员的数量zscore key member:返回member元素的scorezcount key min max:返回score在min到max范围内的member数量zrank key member:返回member的下标zrange key min max:返回score在min到max范围内的所有memberzrange key min max withscores:返回score在min到max范围内的所有member及其对应的score
# 四、安装流程
# redis的安装(Linux环境)
- 下载需要的redis版本 (opens new window) ,将redis压缩包解压并进入其根目录
tar -zxvf redis-4.0.8.tar.gz -C /home/bigDataPresentationSys/,执行make命令进行编译。- 如果出现各种坑爹问题,参考这篇 (opens new window)
- 坑爹一:注意允许的用户,我是在root用户下才运行成功的(应该跟权限有关)
- 坑爹二:尽量用官方稳定版本的,减少入一些奇奇怪怪的坑
- 执行
make test命令检测是否编译成功,在执行命令的时候可能会出现You need tcl 8.5 or newer in order to run the Redis test的错误,通过yum install tcl进行tcl的安装并重新编译即可。

# redis的基本操作
redis服务的启动及关闭
- 进入redis根目录下的src文件夹,然后运行
./redis-server启动redis服务端,键盘按control + C关闭服务,或者输入命令kill -9 PID(PID为启动redis的PID),或者使用客户端的命令——./redis-cli -h 127.0.0.1 shutdown进行关闭
- 进入redis根目录下的src文件夹,然后运行
redis的持久化及及基本的数据操作
- 通过redis-cli的shutdown的话redis会进行持久化(存储到磁盘上),即下次启动数据还在,若用
control + C关闭redis,即存储的数据会消失。在client执行save命令的话,可以进行人工的持久化操作 - redis的src目录下执行
./redis-cli启动客户端(redis-server已启动的情况,执行命令ping,若返回pong则连接成功),通过set key value进行数据的设置,通过get key进行相应键值的获取,通过keys *获取所有的key
- 通过redis-cli的shutdown的话redis会进行持久化(存储到磁盘上),即下次启动数据还在,若用
redis修改启动的端口号
- 通过执行指定执行的端口进行修改:
./redis-server --port 6380:启动redis服务./redis-cli -p 6380:启动redis客户端./redis-cli -p 6380 shutdown:关闭redis服务
- 通过执行指定的配置文件进行启动:
- 修改根目录下的
redis-conf文件,将port(端口)进行修改,执行命令./redis-server ../redis-conf,即可根据配置文件进行启动
- 修改根目录下的
- 通过执行指定执行的端口进行修改:
redis修改启动密码
- 在redis根目录下执行
sudo vim redis-conf命令进行配置文件编辑,通过/ + requirepass(搜索的单词)进行搜索,n可以匹配下一个,shift + n可以匹配上一个,找到位置后修改密码,即redis客户端启动的时候需要输入密码才能启动,如./redis-cli -a 1991111
- 在redis根目录下执行