啟動(dòng) 和停止
redis-server redis.conf
手動(dòng)建立一個(gè)目錄用來(lái)保存相關(guān)的配置文件和持久化文件和pid文件
如:redis
主要配置項(xiàng):
redis.conf
daemonize yes/no 守護(hù)模式運(yùn)行
dir /redis 持久化文件和配置文件保存目錄
pidfile redis.pid 進(jìn)程pid文件名
logfile redis.log? 進(jìn)程log文件名
dbfilename dump.rdb 持久化文件名
主要命令:
keys pattern *
字符串類(lèi)型:
set key value
exists key
del key
type key
incr key? #incr posts:count
incrby key increment #incrby key 2
decrby key decrement decrby key 1
appent key value
strlen key
mset key value key2 value2
mget key key2
散列類(lèi)型:
hset key field value
hget key field
hmset key field value field2 value2
hmget key field field2
hgetall key
hexists kye field
hsetnx key field value
hincrby key field increment
hdel key field field2
hkeys key
hvals key
列表類(lèi)型:
lpush key value value
rpush key value value2
lpop key
rpop key
llen key
lrange key start stop
lrem key count value
ltrim key start end 只保留列表指定片段
ltrim+lpush 用來(lái)限制日志,只保留最新指定數(shù)量的記錄。
ropolpush sourcekey destinationkey 將一個(gè)元素從一個(gè)列表移動(dòng)到另一個(gè)列表
集合類(lèi)型:
sadd key member member2
srem key member member2
smembers key
sismember key member
sdiff key key
sinter key key
sunicon key key
例:給記錄增加標(biāo)簽
sadd post:24:tags? a b c d e f
scard key 顯示集合中元素的個(gè)數(shù)
sdiffstore destinationkey key key
sinterstore destinationkey key key
suniconstore destinationkey key key
srandmember key count
spop key
有序集合:
zadd key score member score2 member2
zscore key member
zrange key start stop [withscores]
zrangeby score key min max limit offset count
zcard key 有序集合中元素的數(shù)量
zcount ke min max 指定范圍元素個(gè)數(shù)
zrem key member 刪除元素
zremrangebyscore key min max 按照分?jǐn)?shù)范圍刪除元素
事務(wù):
multi
sadd "user:2:followers",1
exec
過(guò)期時(shí)間 :
set a b
expire a 900
ttl a 顯示key的距離過(guò)期的秒數(shù)。-2:已過(guò)期,-1 永不過(guò)期
persist key 清除key的過(guò)期時(shí)間 。變?yōu)橛啦贿^(guò)期
python使用redis
? import redis
? ? ? ? rds = redis.Redis(host=host, port=port, password=passwd, socket_timeout=10,db=0)
? ? ? ? rds.info()? ? ? ? ? ? ? ? ? ? ? ? ? # redis信息
? ? ? ? rds.set(key, value)? ? ? ? ? ? ? ? ? # 將值value關(guān)聯(lián)到key
? ? ? ? rds['c1'] = 'bar'? ? ? ? ? ? ? ? ? ? #塞數(shù)據(jù),同上? ? ? ? ? ?
? ? ? ? rds.get(key)? ? ? ? ? ? ? ? ? ? ? ? # 取key值
? ? ? ? rds.keys? ? ? ? ? ? ? ? ? ? ? ? ? ? # 獲取所有key值
? ? ? ? rds.del(key1,key2)? ? ? ? ? ? ? ? ? # 刪除key
? ? ? ? rds.rename(key,new_key2)? ? ? ? ? ? # 將key改名 存在覆蓋
? ? ? ? rds.seten(key,value)? ? ? ? ? ? ? ? # 將值value關(guān)聯(lián)到key,如果key存在不做任何動(dòng)作
? ? ? ? rds.setex(key, value, 10800)? ? ? ? # 將值value關(guān)聯(lián)到key,并設(shè)置key的過(guò)期時(shí)間
? ? ? ? rds.mset()? ? ? ? ? ? ? ? ? ? ? ? ? # 同時(shí)設(shè)置一個(gè)或多個(gè)key-value對(duì)? 如果key存在則覆蓋
? ? ? ? rds.msetnx()? ? ? ? ? ? ? ? ? ? ? ? # 同時(shí)設(shè)置一個(gè)或多個(gè)key-value對(duì)? 如果有key存在則失敗
? ? ? ? rds.mget(key1, key2, key3)? ? ? ? ? # 取多個(gè)key值? 不存在返回nil
? ? ? ? rds.expire(key seconds)? ? ? ? ? ? ? # 設(shè)置key的過(guò)期時(shí)間
? ? ? ?
rds.persist(key)? ? ? ? ? ? ? ? ? ? # 移除key的過(guò)期時(shí)間
? ? ? ? rds.ttl(key)? ? ? ? ? ? ? ? ? ? ? ? # 查看超時(shí)時(shí)間 -1為不過(guò)期
? ? ? ? rds.sadd(key,value1)? ? ? ? ? ? ? ? # 將value1加入集合中? 集合不重復(fù)
? ? ? ? rds.smembers(key)? ? ? ? ? ? ? ? ? ? # 返回key中所有成員
? ? ? ? rds.scard(key)? ? ? ? ? ? ? ? ? ? ? # 集合中元素的數(shù)量
? ? ? ? rds.srandmember(key)? ? ? ? ? ? ? ? # 對(duì)集合隨機(jī)返回一個(gè)元素 而不對(duì)集合改動(dòng)? 當(dāng)key不存在或key是空集時(shí),返回nil
? ? ? ? rds.sinter(key1,key2)? ? ? ? ? ? ? ? # 兩個(gè)集合的交集
? ? ? ? rds.sdiff(key1,key2)? ? ? ? ? ? ? ? # 兩個(gè)集合的差集
? ? ? ? rds.sismember(key,value)? ? ? ? ? ? # 判斷value元素是否是集合key的成員 1存在 0不存在
? ? ? ? rds.lpush(key,value1)? ? ? ? ? ? ? ? # 將value1加入列表中? 從左到右
? ? ? ? rds.lpop(key,value1)? ? ? ? ? ? ? ? # 移除并返回列表key的頭元素
? ? ? ? rds.llen(key)? ? ? ? ? ? ? ? ? ? ? ? # 返回列表長(zhǎng)度
? ? ? ? rds.sort(key)? ? ? ? ? ? ? ? ? ? ? ? # 對(duì)列表、集合、有序集合排序[大列表排序非常影響性能,甚至把redis拖死]
? ? ? ? rds.append(key,value)? ? ? ? ? ? ? ? # 字符串拼接為新的value
? ? ? ? rds.ltrim(key, 0, -10)? ? ? ? ? ? ? # 保留指定區(qū)間內(nèi)的元素,不在都被刪除 0第一個(gè) -1最后一個(gè)
? ? ? ? rds.incr(key , amount=1)? ? ? ? ? ? # 計(jì)數(shù)加1 默認(rèn)1或請(qǐng)先設(shè)置key的數(shù)值
? ? ? ? rds.decr(key)? ? ? ? ? ? ? ? ? ? ? ? # 計(jì)數(shù)減1 請(qǐng)先設(shè)置key的數(shù)值
? ? ? ? rds.save()? ? ? ? ? ? ? ? ? ? ? ? ? # 保存數(shù)據(jù)