1、下载redis.4.0.12.tar.gz https://redis.io/download
2、随便解压到哪里 然后cd 到 src/ 目录下 执行 make 等他编译完 直接make install 会默认安装在 usr/local/bin 目录下,将五个而二进制文件 复制到你想要的 安装目录
3、创建一个 conf文件夹 vim pid_6379.conf 新建一个文件, 内容如下 注释的你可以自己修改为你自己创建好的地址
bind 192.168.85.55 //你的虚拟机的ip
protected-mode yes
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize yes
supervised no
pidfile /opt/data/redis/6379/redis_6379.pid //对应实例的pid文件
loglevel notice
logfile "/opt/data/redis/6379/log.log" //你对应实例的日志位置
databases 16
always-show-logo yes
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir /opt/data/redis/6379/ //aof 文件的存储路径
slave-serve-stale-data yes
slave-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
slave-priority 100
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
slave-lazy-flush no
appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
aof-use-rdb-preamble no
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
aof-rewrite-incremental-fsync yes
4、启动服务 cd 到你自己的安装目录 ./redis-server conf/pid_6379.conf 启动你绑定端口的示例
5、进入客户端测试 ./redis-cli -h ip -p 6379 这里的ip是你的配置文件的ip地址
6、现在启动服务后你就可以,做简单的开发测试了 如下
import redis
conn = redis.Redis(host='192.168.89.77', port=6379)
print conn
conn.hset('xx','k1','konan')
conn.hset('xx','k2','learning')
n1 = conn.hget('xx','k1').decode('utf-8')
n2 = conn.hget('xx','k2').decode('utf-8')
print n1,n2
到这里, 初步的redis就好了 接下来是一下相关的api操作
整理命令如下
所属范围 | command | explain |
key | exits key | 测试指定key是否存在,返回1表示存在,0不存在 |
del key1 key2 ....keyN | 删除给定key,返回删除key的数目,0表示给定key都不存在 | |
type key | 返回给定key的value类型。返回none表示不存在,key有string字符类型,list 链表类型、set、无序集合类型等... | |
keys pattern | 返回匹配指定模式的所有key(支持*,?,[abc ]的方式) | |
randomkey | 返回从当前数据库中随机选择的一个key,如果当前数据库是空的,返回空串 | |
rename oldkey newkey | 原子的重命名一个key,如果newkey存在,将会被覆盖,返回1表示成功,0失败。失败可能是oldkey不存在或者和newkey相同 | |
renamenx oldkey newkey | 同上,但是如果newkey存在返回失败 | |
dbsize | 返回当前数据库的key数量 | |
expire key seconds | 为key指定过期时间,单位是秒。返回1成功,0表示key已经设置过过期时间或者不存在,到达时间后则删除 | |
ttl key | 返回设置了过期时间的key的剩余过期秒数, -1表示key不存在或者没有设置过过期时间 | |
select db-index | 通过索引选择数据库,默认连接的数据库所有是0,默认数据库数是16个。返回1表示成功,0失败 | |
move key db-index | 将key从当前数据库移动到指定数据库。返回1成功。0 如果key不存在,或者已经在指定数据库中 | |
flushdb | 删除当前数据库中所有key,此方法不会失败。慎用 | |
flushall | 删除所有数据库中的所有key,此方法不会失败。更加慎用 | |
string | set key value | 设置key对应的值为string类型的value,返回1表示成功,0失败 |
setnx key value | 同上,如果key已经存在,返回0。nx 是not exist的意思 | |
get key | 获取key对应的string值,如果key不存在返回nil | |
getset key value | 设置key的值,并返回key的旧值。如果key不存在返回nil | |
mget key1 key2 ... keyN | 一次获取多个key的值,如果对应key不存在,则对应返回nil | |
mset key1 value1 ... keyN valueN | 一次设置多个key的值,成功返回1表示所有的值都设置了,失败返回0表示没有任何值被设置 | |
msetnx key1 value1 ... keyN valueN | 同上,但是不会覆盖已经存在的key | |
incr key | 对key的值做加加操作,并返回新的值。注意incr一个不是int的value会返回错误,incr一个不存在的key,则设置key为1 | |
decr key | 同上,但是做的是减减操作,decr一个不存在key,则设置key为-1 | |
incrby key integer | 同incr,加指定值 ,key不存在时候会设置key,并认为原来的value是 0 | |
decrby key integer | 同decr,减指定值。decrby完全是为了可读性,我们完全可以通过incrby一个负值来实现同样效果,反之一样。 | |
append key value | 给指定key的字符串值追加value,返回新字符串值的长度。 | |
substr key start end | 返回截取过的key的字符串值,注意并不修改key的值。下标是从0开始的 | |
list | lpush key string | 在key对应list的头部添加字符串元素,返回1表示成功,0表示key存在且不是list类型 |
rpush key string | 同上,在尾部添加 | |
llen key | 返回key对应list的长度,key不存在返回0,如果key对应类型不是list返回错误 | |
lrange key start end | 返回指定区间内的元素,下标从0开始,负值表示从后面计算,-1表示倒数第一个元素 ,key不存在返回空列表 | |
ltrim key start end | 截取list,保留指定区间内元素,成功返回1,key不存在返回错误,相当于现在的value会变成截取后的值 | |
lset key index value | 设置list中指定下标的元素值,成功返回1,key或者下标越界则返回错误 | |
lrem key count value | 从key对应list中删除count个和value相同的元素。count为0时候删除全部 | |
lpop key | 从list的头部(从左到右)删除元素,并返回删除元素。如果key对应list不存在或者是空返回nil,如果key对应值不是list返回错误 | |
rpop | 同上,但是从尾部(从右到左)删除 | |
blpop key1...keyN timeout | 从左到右扫描返回对第一个非空list进行lpop操作并返回,比如blpop list1 list2 list3 0 ,如果list不存在,list2,list3都是非空则对list2做lpop并返回从list2中删除的元素。如果所有的list都是空或不存在,则会阻塞timeout秒,timeout为0表示一直阻塞。 当阻塞时,如果有client对key1...keyN中的任意key进行push操作,则第一在这个key上被阻塞的client会立即返回。如果超时发生,则返回nil。 | |
brpop key1...keyN timeout | 同blpop,一个是从头部删除一个是从尾部删除 | |
rpoplpush srckey destkey | 从srckey对应list的尾部移除元素并添加到destkey对应list的头部,最后返回被移除的元素值,整个操作是原子的.如果srckey是空或者不存在返回nil | |
set | sadd key member | 添加一个string元素到,key对应的set集合中,成功返回1,如果元素已存在集合中返回0,key对应的set不存在返回错误 |
srem key member | 从key对应set中移除给定元素,成功返回1,如果member在集合中不存在或者key不存在返回0,如果key对应的不是set类型的值返回错误 | |
spop key | 删除并返回key对应set中随机的一个元素,如果set是空或者key不存在返回nil | |
srandmember key | 同spop,随机取set中的一个元素,但是不删除元素 | |
smove srckey dstkey member | 从srckey对应set中移除member并添加到dstkey对应set中,整个操作是原子的。成功返回1,如果member在srckey中不存在返回0,如果key不是set类型返回错误 | |
scard key | 返回set的元素个数,如果set是空或者key不存在返回0 | |
sismember key member | 判断member是否在set中,存在返回1,0表示不存在或者key不存在 | |
sinter key1 key2...keyN | 返回所有给定key的交集 | |
sinterstore dstkey key1...keyN | 同sinter,但是会同时将交集存到dstkey下 | |
sunion key1 key2...keyN | 返回所有给定key的并集 | |
sunionstore dstkey key1...keyN | 同sunion,并同时保存并集到dstkey下 | |
sdiff key1 key2...keyN | 返回所有给定key的差集 | |
sdiffstore dstkey key1...keyN | 同sdiff,并同时保存差集到dstkey下 | |
smembers key | 返回key对应set的所有元素,结果是无序的 | |
sortedset | zadd key score member | 添加元素到集合,元素在集合中存在则更新对应score |
zrem key member | 删除指定元素,1表示成功,如果元素不存在返回0 | |
zincrby key incr member | 增加对应member的score值,然后移动元素并保持skip list有序。返回更新后的score值 | |
zrank key member | 返回指定元素在集合中的排名(下标,非score),集合中元素是按score从小到大排序的 | |
zrevrank key member | 同上,但是集合中元素是按score从大到小排序 | |
zrange key start end | 类似lrange操作从集合中取指定区间的元素。返回的是有序结果 | |
zrevrange key start end | 同上,返回结果是按score逆序的 | |
zrangebyscore key min max | 返回集合中score在给定区间的元素,左开右闭 min < score <= max | |
zcount key min max | 返回集合中score在给定区间的数量 左闭右闭 min <= score <= max | |
zcard key | 返回集合中元素个数 | |
zscore key element | 返回给定元素对应的score | |
zremrangebyrank key min max | 删除集合中排名在给定区间的元素 排名区间为升序 从小到大的排序 | |
zremrangebyscore key min max | 删除集合中score在给定区间的元素 左闭右闭 min < score <= max | |
hash | hset key field value | 设置hash field为指定值,如果key不存在,则先创建 |
hget key field | 获取指定的hash field | |
hmget key filed1....fieldN | 获取全部指定的hash filed 按传入的参数的顺序依次返回对应的值 不存在的field 则无返回 | |
hmset key filed1 value1 ... | filedN valueN 同时设置hash的多个field | |
hincrby key field integer | 在对应的fileld加上对应步长,正数未加 负数为减,value 必须为int string会直接报错 |