redis 常用内容总结
redis command
redis-server
o –conf redis.conf 指定配置文件 --version 获取redis版本
o –port 7777 指定监听端口
redis-client
o -h 127.0.0.1 指定主机 -p 指定端口(6379 默认)
o -s 指定socket -a 指定密码
o Redis-cli set TEST 100 可以直接在命令行中执行命令
Redis.conf 配置文件说明:
o daemonize no redis 默认不是以守护进程的方式运行 改为Yes 以守护进程运行
o pidfile /var/run/redis.pid 指定 pidfile的位置
o bind 127.0.0.1 绑定的主机地址
o timeout 300 当客户端闲置多长时间后关闭连接如果指定为 0表示关闭该功能
o loglevel notice 指定日志记录级别,Redis 总共支持四个级别:debug、verbose、notice、warning,默认为 notice
o logfile stdout 日志记录方式,默认为标准输出,如果配置 Redis 为守护进程方式运行,而这里又配置为日志记录方式为标准输出,则日志将会发送给 /dev/null
o Databases 设置数据库的数量,默认数据库为0,可以使用SELECT 命令在连接上指定数据库id
o save 指定在多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个条件配合 可以有多个条件要求。
o rdbcompression yes 指定存储至本地数据库时是否压缩数据,默认为 yes,Redis 采用 LZF 压缩,如果为了节省 CPU 时间,可以关闭该选项,但会导致数据库文件变的巨大
o dbfilename dump.rdb 指定本地数据库文件名,默认值为 dump.rdb
o dir ./ 指定数据库本地存放目录
o slaveof 当本机为从服务器的时候 设置的主服务器的ip端口
o masterauth 当主服务器设置了密码保护的时候的密码
o requirepass foobared 设置redis的链接密码
o maxclients 128 设置同一时间最大的客户端连接数
o maxmemory 指定 Redis 最大内存限制,Redis 在启动时会把数据加载到内存中,达到最大内存后,Redis 会先尝试清除已到期或即将到期的 Key,当此方法处理 后,仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读取操作。Redis 新的 vm 机制,会把 Key 存放内存,Value 会存放在 swap 区
o Databases 设置数据库的数量,默认数据库为0,可以使用SELECT 命令在连接上指定数据库id
Redis-cli 命令行交互环境中
o redis-cli -h host -p port -a password 登录服务器 --raw 可以避免中午乱码
o Info 【server】 查看服务器信息 cofnig get NAME 获取配置信息
o Config get* 获取所有的配置信息
o Config set NAME VALUE 配置服务器的配置信息
o save 指定在多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个条件配合 可以有多个条件要求。
o rdbcompression yes 指定存储至本地数据库时是否压缩数据,默认为 yes,Redis 采用 LZF 压缩,如果为了节省 CPU 时间,可以关闭该选项,但会导致数据库文件变的巨大
o dbfilename dump.rdb 指定本地数据库文件名,默认值为 dump.rdb
redis数据类型
String(字符串) 【SET/GET】
string 是 redis 最基本的类型,一个 key 对应一个 value。
string 类型是二进制安全的。意思是 redis 的 string 可以包含任何数据。比如jpg图片或者序列化的对象。
string 类型是 Redis 最基本的数据类型,string 类型的值最大能存储 512MB。
Hash(哈希)【HSET / HGET】
Redis hash 是一个键值(key=>value)对集合。
Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。
List(列表) 【LPUSH/LRANGE】
Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。
Set(集合)【SADD/SMEMBERS】
Redis 的 Set 是 string 类型的无序集合。
集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。
zset(sorted set:有序集合)
【ZRANGEBYSCORE/ ZADD】
Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。
zset的成员是唯一的,但分数(score)却可以重复。
命令行操作
o DEL key. 删除一个键
o DUMP key 序列化一个键值
o EXISTS key 判断一个键是不是存在
o EXPIRE key seconds 给一个键设置到期时间 单位秒
o PERSIST key 移除过期时间 使得建一直有效
o Keys pattern 返回所有符合模式的键
o PTTL/TTL key 以毫秒/秒为单位返回剩余有效时长
o RANDOMKEY 返回当前数据库中随机的一个键
o TYPE key 返回数据的类型
o RENAMENX key nkey 重命名key为nkey. 仅当nkey不存在的时候回
字符串命令(String)
o SET. Key value 为键key 设置value
o GET key 获取键为可以的值
o GETRANGE key start end 截取字符串
o GETSET key value key复制为value 如果可以存在返回旧值
o GETBIT key offect 获取指定偏移量上的二进制值
o SETNX key value 当key 不存在的时候 才设置值
o SETEX key seconds value 设置key 的值 并指定超时时间
o INCR key 将key中的数值加1
o INCRBY key value 给key 加上value
o DECR key key减一
o DECRBY key value key减去指定值
o Append key value 在原来key的值上追加value
REDIS HASH TABLE 哈希表
o HDEL key field1 field2 … 删除哈希表中一个或者多个键
o HEXISTS key field 看哈希表key中是否存在某个字段
o HINCRBY key field value 为某个字段增加指定的值
o HKEYS key 某个哈希表的所有字段
o HLEN key 某个哈希表的字段个数
o HMGET key field1 获取某个字段的值(可以获取多个)
o HMSET Key field1 value1 设置某个值(可以设置多个)
o HGET key field 获取字段值 (1个)
o HSET key field value1 设置字段值(1个)
o HSETNX key field value 字段不存在的时候才会设置值
o HVALS key 获取哈希表中所有的值
LIST列表
o BLPOP key timeout 弹出并返回一个元素没有会阻塞直到超时或有元素
o BRPOP Key timeout 同上 从右侧弹出并返回第一个元素
o LPOP key 移除并返回第一个元素 不阻塞
o RPOP key 移除并返回最后一个元素 不阻塞
o LPUSH key value 最开始插入一个元素 或多个
o RPUSH key value 最后插入一个元素 或多个
o LPUSHX key value 插入到一个存在的列表的头部 一个值
o RPUSHX key value 插入到一个存在的列表的尾部 一个值
o BRPOPLPUSH source dest timeout 从一个表中弹出一个元素并返回 然后插入到另一个表中, 如果没有 会阻塞 直到超时或者有元素
o RPOPLPUSH source dest timeout 从一个表中弹出一个元素并返回 然后插入到另一个表中, 如果没有 不会阻塞
o LINDEX key index 通过索引获取一个表中的指定元素
o LINSERT key [befor|after] piov value. 在指定值前或者后插入一个值
o LLEN key 获取某个列表的长度
o LRANGE key index1 index2 获取指定范围的元素
o LTRIM key start end 保留指定区间的元素 去掉其他范围的
SET 集合
o SADD key Value1 向集合添加一个或者多个成员
o SCARD key 获取一个集合的成员个数
o SDIFF key1 key2 获取key1存在key2 不存在的元素
o SINTER key1 key2 获取两个集合的交集
o SDIFFSTORE dest key1 key2 获取两个集合的差集并存在dest中
o SDINTERSTORE dest key1 key2 获取两个集合的交集存在dest中
o SUNION key1 key2 获取两个集合的并集
o SUNIONSTORE dest key1 key2 获取并集并存在dest中
o SISMEMBER key member 判断member是否在key 中存在
o SMEMBERS key 获取集合中的所有元素
o SMOVE source dest member 将member从source移动到dest中
o SPOP key 移除并返回集合中的随机一个元素
o SRANDOMEMBER key count 返回集合中随机的若干元素
o SREM key member1 member2 移除集合中指定的 一个或者多个元素
SORTED SET 有序集合
o ZADD key [score value] [score value] 向有序集合中添加一个多个成员以及成员的分数 也可以用来更新成员的分数
o ZCARD key 获取有序集合的个数
o ZCOUNT key min max 获取集合指定分数范围内元素的个数
o ZINCRBY key increment member 为成员分数加上指定的值
o ZRANGEBYSCORE key min max 根据分数范围获取元素
o ZRANK key member 返回指定元素的索引
o ZREM key member 【member1】 移除指定的一个或多个元素
o ZREMRANGEBYRANK key start stop 根据排名移除元素
o ZREMRANGEBYSCORE key min max 根据分数范围移除元素
o ZREVRANGEBYSCORE key max min 根据分数返回元素 从高到底排列
o ZSCORE key member 返回元素的分数
发布订阅
o PUBLISH channel message 将信息发送到指定的频道。
o SUBSCRIBE channel1 。。 订阅一个或者多个频道
o UNSUBSCRIVE channel 。。 退订一个或多个指定的频道
o 服务端的相关命令
o BGSAVE 后台异步写数据到文件
o SHUTDOWN 保存数据到文件 然后关闭服务器
o SAVE 保存数据到文件
o CLIENT LIST 列出当前的客户端
o CONFIG RESETSTAT 充值info中的统计信息
o DBSIZE 获取当前数据库中键的数量
o DEBUG SEGFAULT 让redis服务器崩溃
o FLUSHALL 删除所有数据库所有的key
o FLUSHDB 删除当前数据库的所有key
o LASTSAVE 返回最后一次保存的时间
o Monitor 实时打印出redis执行的命令
o Role 返回主从所属的角色
o SLOWLOG 慢查询日志
o 保存与恢复
o 保存用 save 或者bgsave
o 恢复先查看挡墙服务器位置 config get dir
o 然后将数据文件放到指定文件夹下重启服务器即可