redis

Remote Directory Server(远程服务器字典)底层c
Redis.io官网

wget http://
tar -xvzf redis.tar.gz
cd redis
make
make install

redis_benchmark 性能测试tool
redis-check-aof:AOF文件修复工具
redis-check-dump:RDB文件检测工具

redis.conf
daemonize yes yes以守护进程的方式运行

redis-server
redis-cli

shutdown
状态回复
不去分大小写: ping, SET test ‘111’
错误回复:(error),以error开始
整数回复:(integer)以integer开始 DBSIZE(数据库的大小)
字符串回复:GET test,(nil)空的
多行字符串回复:KEYS *(查看所有的键)

redis-server --PORT 6370
redis-cli -h loaclhost -p 6370

动态设置配置选项的值:

  1. 获取:
    CONFIG GET name(port)
    设置:
    CONFIG SET loglevel waining

2.redis-server redis.conf --loglevel warning
3.修改配置文件

redis.conf 相关
port:6379 默认端口
bind 127.0.0.1 默认主机地址
timeout 0 客户端多久关闭链接,0表示没有启动这个选项
loglevel notice 指定日志级别 (debug【详细信息,调试,开发测试】, verbose【有很多不太有用的信息】,notice【通知,生产环境】,warning)
logfile stdout 日志标准输出,记录方式
database 16 数据库的数量

——————快照——————

save  多少秒有多少次改变将其同步到磁盘数据文件中
save 900 1 代表900秒有一个更改
save 300 20

rdbcompression yes 存储本地数据库时是否压缩,默认yes
dbfilename dump.rdb 指定本地数据库的文件名,默认dump.rdb
dir ./ 指定本地数据库的位置

------------redis 数据类型----------
String 类型
        一个键最多存储512Mb
        1》.SET
                  SET key value [EX seconds] [PX millisenconds] [NX|XX]
                  NX 键不存在时,才成功
                  XX 键存在
                  PX millisenconds 指定key的生存时间 单位为毫秒
                  PX 指定key的生存时间  单位是秒
        MGET key key 获取多个值
        STRLEN key 获取长度,当key不存在返回0
        SETRANGE key offset value 字符串替换 ,长度不够用/00填充
        GETRANGE key start end  返回字符串中的一部分
        SETNX key value 只有key不存在使用
        SETEX key seconds value 设置过期时间 原子性操作(设置key value 和过期时间) == SET key value + EXPIRE key
         TTL key 查看剩余时间

        
         
        MSET 一次设置多个键值对,只有全部key都成功才算成功
        MSET key value key1 value

          PSETEX key 毫秒 value 以毫秒为点位设置生存周期
          PTTL key 查看剩余时间(毫秒)

        decr key 指定key的值减一
        decrby key num 减去制定的值

        incr key  加一
        incrby key num 加上一个指定的增量(整数)
        incrbyfloat key float

      del key 删除 key

Hash类型

hash-max-ziplist-entries 512  最大存储字节512字节
hash-max-ziplist-value 64 字段数目

HSET  key field value 将HASH表中的filed设置成指定value 
                    field  有着覆盖,没有则创建。存在返回0,不存在返回1

HGET key field value 获得表中的值
HSETNX field  value 如果field存在,操作无效
HDEL KEY field 删除
HKEYS  key
hlen key
hvals key

List类型

 *
?
[]        a[b-e] -->ab ac ae
\x

keys *   key t*(t开头)

type key 获取key的类型,不存在的key返回none
expire key seconds 过期时间 s
pexpire key miliseconds 过期时间ms
pttl
exists key 判断key是否存在

persist key 将有时间限制的key转化为永久key
random key 随机返回一个key
rename oldkey newkey

renamenx 重命名的新名称不存在才执行

dump key 序列化
 restore key ms serilizeget  反序列化
 move key db 不存在报错,都存在不移动
object ,scan, sort,migrate
list type

lpush key value value .... 向链表左端添加元素
rpush key value value.... 右端添加

lpushx key value value .... 向链表左端添加元素,只有key存在材添加,不存在创建
rpushx key value value.... 右端添加

lpop key zuo弹出
rpop  key 右弹出

llen key 长度
lrange key start stop 截取

lrem 删除指定值
lrem key count value 
count>0从头开始,向尾搜索,remove与value相等的元素,移除count个
count <= 从列表的尾部向搜索,移除与value想的元素,移除count个
count == 0 移除列表中所有与count相等的值

lindex  key index (index可以是正数也可以是负数)
lset key index value 
ltrim  key start stop 只保留列表的片段(结束点比起始点大,列表清空)
linsert  key before|after pivot value  插入元素
lpush test  1 2 3 4
linsert test before 2  5  ( 4 3 2 5 1 )返回列表的长度 否则赶回-1
空列表返回0 (失败)

rpoplpush source destination将一个列表(右边弹出)转到另一个列表(左端加入)
lpush test1 1 2 3 4 
lpush test2  5 6 7 8
rpoplpush test1 test2 (test1:4 3 2   test2: 8 7 6 5 1 )
rpoplpush test1 test1 (1 4 3 2)
source不存在返回nil

blpop (lpop 的阻塞版本)
blpop key[key...]  timeout(0表示无限阻塞)


Set类型

####无序集合
sadd key member[....] 添加元素
sadd test 1 2 
exist test
注:添加元素不能重复 只添加不重复的元素
smembers key 返回集合中的所有成员
sismember  key value  检测value是否是集合的成员,是返回1 ,不是返回0
srem  key member[.....]  删除集合中的一个或者多个成员,删除不存在的元素返回0,删除成功,返回删除的个数
spop key 删除并返回集合中的随机元素

srandmember key count 随机返回集合中的元素
注意:count为正数,小于集合中的元素,返回随机元素的集合数组,当count大于集合个数,返回整个集合,count为负数,返回一个数组,数组成员可能出现重复,数组长度取count的绝对值

sdiff key key 返回集合间的差集 在集合1中不在集合2中
sadd test1  a b c d e f
sadd test2 a b r d f 
sdiff test1 test2

sinter key key ...  交集
sinter test1 test2

sunion  key key ... 返回并集
sunion test1 test2

scard key 返回集合中元素的个数
scard test1

sdiffstore destination key key.....  将差集的结果保存到指定集合中
sdiffstore diffset test1 test2

sinterstore destination test1 test2 交集的结果保存在集合中

sunionstore destination key key ....

smove source destionation member 将集合中的元素移动到另一个集合(原子性的操作)

Zset

####有序集合
获取指定范围的数
list(链表实现,获取两端数据很快,适用于,新鲜事,日志等) vs 有序集合(跳跃表,散列表,耗费内存,快速取中间元素,能快速调换位置)
11》zadd key score member 添加元素及其分数,返回新增加的成员数量,有则更新
2》zscore key member  获取成员分数,不存在返回nail
zadd key +inf maxint -inf minint
3》zrange key start stop       按照元素分数从小到大的顺序返回指定(包含两端)是索引的start到stop之间的所有元素
zrange key 0 -1 withscore  当分数相同时,按照字典序,ascci码排序
zrange key 0 2
stop 超出索引大小,返回到结束
4》zrevrange key start stop [withsources] 安装分数从大到小的顺序排
5》zrangebyscore:获得指定分数范围内的元素,从小到大
   zrangebyscore key min max [withscore][limit offset count]限制条数
  zrangebyscore key (min  (max  (是不包含极值点
zrangebyscore min +inf withsorce limit 0 3
14> zrevrank key member
15>















 









你可能感兴趣的:(redis)