1、定義
redis是一個key-value存儲系統。和Memcached類似,它支持存儲的value類型相對更多,包括string(字符串)、list(鏈表)、set(集合)、zset(sorted set --有序集合)和hash(哈希類型)。這些數據類型都支持push/pop、add/remove及取交集並集和差集及更豐富的操作,而且這些操作都是原子性的。在此基礎上,redis支持各種不同方式的排序。與memcached一樣,為了保證效率,數據都是緩存在內存中。區別的是redis會周期性的把更新的數據寫入磁盤或者把修改操作寫入追加的記錄文件,並且在此基礎上實現了master-slave(主從)同步。
redis正常是只有linux版的,難免有時候要在windows版的,windows版可以在這里下載:http://pan.baidu.com/s/1i4oswgH
2、啟動windows 的reids方式
解壓下載的壓縮包后,有以下文件
cmd命令行進入該目錄,執行下面的命令
redis-server.exe redis.windows.conf
出現如下信息,則啟動成功
3、ttl 命令
Redis TTL 命令以秒為單位返回 key 的剩余過期時間。
TTL KEY_NAME
可用版本:>= 1.0.0
返回值的意義
-2:key不存在;
-1:存在,但未設置剩余生存時間;
否則,以秒為單位返回key的生存時間。
4、expire命令
memcached 和 redis 的set命令都有expire參數,可以設置key的過期時間。但是redis是一個可以對數據持久化的key-value database,它的key過期策略還是和memcached有所不同的。
redis通過expire命令來設置key的過期時間。語法如下:
redis.expire(key, expiration)
注意:在小於2.1.3的redis版本里,只能對key設置一次expire。redis2.1.3和之后的版本里,可以多次對key使用expire命令,更新key的expire time。
redis術語里面,把設置了expire time的key 叫做:volatile keys。 意思就是不穩定的key。
如果對key使用set或del命令,那么也會移除expire time。尤其是set命令,這個在編寫程序的時候需要注意一下。
redis2.1.3之前的老版本里,如果對volatile keys 做相關寫入操作(LPUSH,LSET),和其他一些觸發修改value的操作時,redis會刪除 該key。 也就是說 :
redis.expire(key,expiration);
redis.lpush(key,field,value);
redis.get(key) //return null
redis2.1.3之后的版本里面沒有這個約束,可以任意修改。
redis.set(key,100); redis.expire(key,expiration); redis.incr(key) redis.get(key) //redis2.2.2 return 101; redis<2.1.3 return 1;
redis對過期鍵采用了lazy expiration:在訪問key的時候判定key是否過期,如果過期,則進行過期處理。其次,每秒對volatile keys 進行抽樣測試,如果有過期鍵,那么對所有過期key進行處理。
spring + redis實現緩存:http://www.cnblogs.com/0201zcr/p/4987561.html
致謝:感謝您的閱讀!