1. redis一般用來存儲什麼數據
1.strings(字元串)a)如果只使用redis中的字元串類型,且不使用redis的持久化功能,那麼,redis就和memcache非常非常的像了;b)在遇到數值操作時,會自動轉換過為字元串,如寫入數字1,讀出來將是字元串1;c)本身具有原子性的指令:incr、dec
2. redis數據類型是什麼
一、string
string 是 redis 最基本的類型,你可以理解成與 Memcached 一模一樣的類型,一個 key 對應一個 value。
string 類型是二進制安全的。意思是 redis 的 string 可以包含任何數據。比如jpg圖片或者序列化的對象。
string 類型是 Redis 最基本的數據類型,string 類型的值最大能存儲 512MB。
命令: SET 和 GET 命令
二、hash
Redis hash 是一個鍵值(key=>value)對集合。
Redis hash 是一個 string 類型的 field 和 value 的映射表,hash 特別適合用於存儲對象。
HMSET, HGET 命令,HMSET 設置了兩個 field=>value 對, HGET 獲取對應 field 對應的 value。
三、list
列表是簡單的字元串列表,按照插入順序排序。可以添加一個元素到列表的頭部(左邊)或者尾部(右邊)。
列表最多可存儲 232 - 1 元素 (4294967295,每個列表可存儲40多億)。
lpush 設置值,lrange取值
四、set
redis的set是string的無序集合。集合通過哈希表實現。
添加一個string元素到key對應的set集合中,用 sadd命令。返回1表示成功,0表示在集合中已存在,返回錯誤表示key對應的set不存在。
查看用smembers 命令
集合內元素的唯一性,第二次插入的元素將被忽略。
集合中最大的成員數為 232 - 1(4294967295, 每個集合可存儲40多億個成員)。
五、zset
redis的zset 和 set 一樣也是string類型元素的集合,且不允許重復的成員。
不同的是每個元素都會關聯一個double類型的分數。redis正是通過分數來為集合中的成員進行從小到大的排序。zset的成員是唯一的,但分數(score)卻可以重復。
添加元素到集合,元素在集合中存在則更新對應score:zadd key score member。
Redis數據模型
Redis的外圍由一個鍵、值映射的字典構成。與其他非關系型資料庫主要不同在於:Redis中值的類型不僅限於字元串,還支持如下抽象數據類型:
1、字元串列表
2、無序不重復的字元串集合
3、有序不重復的字元串集合
4、鍵、值都為字元串的哈希表
值的類型決定了值本身支持的操作。Redis支持不同無序、有序的列表,無序、有序的集合間的交集、並集等高級伺服器端原子操作。
3. redistemplate 存儲對象和字元串的區別
數據完全使用JSON式畢竟redis直接set、get使用起
門檻低redis沒提供專用設置象需要自進行改寫擔JSON轉象消耗資源情況問題需要考量幾第
點:使用JSON轉換lib否存性能問題第二點:數據數據量級別存儲百萬級數據象建議採用存儲序列化象式
少量數據級象或者數據象欄位建議採用JSON轉換String式畢竟redis存儲字元類型部優化非具體采
用式與要看所使用場景
4. Redis中String和byte各自在什麼時候使用,有什麼區別
redis中所有的數據都是以byte[]形式存儲的,所以說redis內部其實是沒有數據類型的概念的。我們使用redis的api進行數據操作時,可以操作byte[]類型的數據,也可以操作String類型的數據(其實String類型最終還是轉為了byte[]型)。
要問什麼時候用String,什麼時候用byte[],這個要看你業務類型了,如果要存放的數據都是字元串,那肯定優先使用String了,不過你也可以轉換為byte[]再存儲也可以。byte[]類型在存儲對象型的值時很方便,可以將對象序列化後直接存儲,取值時再反序列化即可。
5. redis 持久化ip的結果是字元串為什麼
public class RedisTable {
private Long redisId; //保存redis的主鍵ID
private String redisType;//redis的類型如:set/list/hash/sortedset/string
private String redisKey;//保存redis時使用的key
private String objectName;//此屬性主要用於hash數據結構時,保存member的
private String redisValue;//存儲的redis的值
private String keyToken;//保存Token時,為區分拼接的字元串
private String score;//此屬性為sortedset數據結構時,保存的score值
private Date createTime;//創建時間
private Date updateTime;//更新時間
private String macIp;//redis的IP地址 當然此處也可以存儲mac地址
private String port;//redis使用的埠號
private String appCode;//應用區分碼
private String remark;//備注
private String isModify;//是否修改。此屬性可以用於增量備份時,即在每個redis存儲時可以更具key多存儲一個屬性isModify。 如果有修改,則置為 Y,否則為N.
6. redis字元串怎麼儲存
redis是一個性能非常優秀的內存資料庫,通過key-value存儲系統。
和Memcached類似,它支持存儲的value類型相對更多,包括string(字元串)、list(鏈表)、set(集合)、zset(sorted
set
--有序集合)和hashs(哈希類型)。
這些數據類型都支持push/pop、add/remove及取交集並集和差集及更豐富的操作,而且這些操作都是原子性的。
與memcached一樣,為了保證效率,數據都是緩存在內存中。區別的是redis會周期性的把更新的數據寫入磁碟或者把修改操作寫入追加的記錄文件,並且在此基礎上實現了master-slave(主從)同步。
7. redis對字元串的存儲做了哪些優化
在redis內部的存儲方式,比如:type=string代表value存儲的是一個普通字元串,那麼對應的encoding可以是raw或者是int,如果是int則代表實際redis內部是按數值型類
8. redis 常見數據結構以及使用場景分析
Redis 提供了 5種數據結構,每一種數據結構有各種的使用場景。
1、String 字元串
字元串類型是 Redis 最基礎的數據結構,首先鍵都是字元串類型,而且 其他幾種數據結構都是在字元串類型基礎上構建的,我們常使用的 set key value 命令就是字元串。常用在緩存、計數、共享Session、限速等。
2、Hash 哈希
在Redis中,哈希類型是指鍵值本身又是一個鍵值對 結構,形如value={{field1,value1},...{fieldN,valueN}},添加命令:hset key field value。哈希可以用來存放用戶信息,比如實現購物車
3、List 列表
列表(list)類型是用來存儲多個有序的字元串。可以做簡單的消息隊列的功能。另外,可以利用 lrange 命令,做基於 Redis的分頁功能,性能極佳,用戶體驗好。
4、Set 集合
集合(set)類型也是用來保存多個的字元串元素,但和列表類型不一 樣的是,集合中不允許有重復元素,並且集合中的元素是無序的,不能通過 索引下標獲取元素。利用 Set 的交集、並集、差集等操作,可以計算共同喜好,全部的喜好,自己獨有的喜好等功能。
5、Sorted Set 有序集合
Sorted Set 多了一個權重參數 Score,集合中的元素能夠按 Score 進行排列。可以做排行榜應用,取 TOP N 操作。
9. redis怎麼存儲
redis是一個性能非常優秀的內存資料庫,通過key-value存儲系統。
和Memcached類似,它支持存儲的value類型相對更多,包括string(字元串)、list(鏈表)、set(集合)、zset(sorted set --有序集合)和hashs(哈希類型)。
這些數據類型都支持push/pop、add/remove及取交集並集和差集及更豐富的操作,而且這些操作都是原子性的。
與memcached一樣,為了保證效率,數據都是緩存在內存中。區別的是redis會周期性的把更新的數據寫入磁碟或者把修改操作寫入追加的記錄文件,並且在此基礎上實現了master-slave(主從)同步。