Redis的基本操作

1、Redis的全局操作命令

#查看所有key
keys *  或  keys "*"

#查看匹配前缀的keys
keys "zhang*"

#清空redis
flushdb

#随机取出一个key
randomkey

#查看key的类型
type key

#查看数据库中key的数量
dbsize

#查看服务器信息
info

#重命名key
rename key: 重命名

#删除key
del key


 

2、Redis一共分为五种基本的数据类型,String,Hash,List,Set,ZSet.下面对这五种基本的数据类型,进行介绍.

      2.1、String 类型(通过set key value来存储,通过get key来获取值)

set    key value:设置key的值,若存在则覆盖
setnx  key value:SET if Not eXists,若存在则不操作。

MSET   key1 value1 key2 value2 ... keyN valueN:设置这些key的值,若存在则覆盖
MSETNX key1 value1 key2 value2 ... keyN valueN:同mset,但如果其中一个key已经存在了,则都不设置。这些操作都是原子的。

append key value:向key的字符串追加拼接。
get    key:获取key对应的值 MGET key1 key2 ... keyN:获取这些key对应的值 

EXISTS key:查看是否存在该元素。
GETSET key value:获取该元素的值,并给该元素设置新值。(通常和incr搭配使用,如一个mycount一直incr,然后达到某些情况需要清零,清零之前需要知道mycount的值)

del    key:删除元素
RENAME oldkey newkey:重命名


测试代码如下:

127.0.0.1:6379> set age 20 
OK
127.0.0.1:6379> get age
"20"

      2.2、Hash类型

HSET    key field value:key是对象名,field是属性,value是值;
HMSET   key field value [field value ...]:同时设置多个属性

HGET    key field:获取该对象的该属性
HMGET   key field value [field value ...]:获取多个属性值

HGETALL key:获取对象的所有信息
HKEYS   key:获取对象的所有属性

HVALS   key:获取对象的所有属性值
HDEL    key field:删除对象的该属性

HEXISTS key field:查看对象是否存在该属性
HINCRBY key field value:原子自增操作,只能是integer的属性值可以使用;

HLEN key: Return the number of entries (fields) contained in the hash stored at key.获取属性的个数。


测试代码如下:

127.0.0.1:6379> hset user_1 name "zhang"
(integer) 1
127.0.0.1:6379> hset user_1 age 18
(integer) 1
127.0.0.1:6379> hgetall user_1
1) "name"
2) "zhang"
3) "age"
4) "18"

      2.3、List类型

rpush  keyList value:向keyList添加元素,向后加,r表示右边
lpush  keyList value:向keyList左边添加元素,LPUSH puts the new value at the start of the list.

lrange keyList beginIndex endIndex:获取keyList的元素,用两端的索引取出子集,endIndex=-1则表示全部取出
llen   keyList :获取keyList的长度大小

lpop   keyList:取出并移除keyList第一个元素,左边的元素
rpop   keyList:取出并移除keyList最后一个元素,右边的元素

LINDEX key index:获取该索引下的元素。
lrem   key count value:删除count个value。(count为正数,从头开始,删除count个value元素;count为负,则从尾部向头删除|count|个value元素;count为0,则所有的元素为value的都删除)

LSET   key index value:设置索引为index下的元素为value.超出索引范围报错。
LTRIM  key start end:清空索引在start 和end之外的元素,索引从0开始,两端保留,两端之外的清空。



测试代码

127.0.0.1:6379> RPUSH mylist_1 4
(integer) 1
127.0.0.1:6379> RPUSH mylist_1 5
(integer) 2
127.0.0.1:6379> LPUSH mylist_1 6
(integer) 3
127.0.0.1:6379> LRANGE mylist_1 1 -1
1) "4"
2) "5"

      2.4、Set类型

sadd        key value : 向set添加元素
srem        key value :从set中移除元素

smembers    key : 取出所有set元素
SISMEMBER   key value: 查看value是否存在set中

SUNION      key1 key2 ... keyN:将所有key合并后取出来,相同的值只取一次
scard       key : 获取set中元素的个数

SRANDMEMBER key: Return a random element from a Set, without removing the element.随机取出一个
SDIFF       key1 key2 ... keyN:获取第一set中不存在后面几个set里的元素。

SDIFFSTORE  dstkey key1 key2 ... keyN:和sdiff相同,获取key1中不存在其他key里的元素,但要存储到dstkey中。
SINTER      key1 key2 ... keyN:取出这些set的交集

SINTERSTORE dstkey key1 key2 ... keyN:取出这些key的交集并存储到dstkey
SMOVE       srckey dstkey member:将元素member从srckey中转移到dstkey中,这个操作是原子的。

      2.5、ZSet类型( 和set一样,唯一。但z多了个score用来排序)

ZADD key score member:向有序set中添加元素member,其中score为分数,默认升序;
ZRANGE key start end [WITHSCORES]:获取按score从低到高索引范围内的元素,索引可以是负数,-1表示最后一个,-2表示倒数第二个,即从后往前。withscores可选,表示获取包括分数。

ZREVRANGE key start end [WITHSCORES]:同上,但score从高到低排序。
ZCOUNT key min max:获取score在min和max范围内的元素的个数

ZCARD key:获取集合中元素的个数。
ZINCRBY key increment member:根据元素,score原子增加increment.

ZREMRANGEBYSCORE key min max:清空集合内的score位于min和max之间的元素。
ZRANK  key member:获取元素的索引(照score从低到高排列)。

ZREM   key member:移除集合中的该元素
ZSCORE key member:获取该元素的score


3、redis提供原子自增操作incr,用来防止多线程并发出现数据错误

incr   key: 原子的+1;
DECR   key:原子的-1;
DECRBY key integer:原子的-integer;
INCRBY key integer:原子的+integer;

测试代码

127.0.0.1:6379> set age 50
OK
127.0.0.1:6379> get age
"50"
127.0.0.1:6379> INCR age 
(integer) 51
127.0.0.1:6379> get age
"51"
127.0.0.1:6379> INCRBY age -3
(integer) 48
127.0.0.1:6379> get age
"48"

回答: Redis数据库是一个内存数据库,通过key-value键值对的方式进行数据存储。它的优点包括访问速度快、适用于缓存系统和存储大量活跃数据,可以提高网站的响应速度。\[1\]在Java中,有两个比较出名的连接Redis的驱动包,分别是Jedis和Redisson,我们可以使用Jedis来进行程序操作Redis。\[3\]以下是一些基本Redis操作方法: - 使用`new Jedis(host, port)`创建Jedis对象,其中host是Redis服务器地址,port是Redis服务端口。 - 使用`set(key, value)`方法设置字符串类型的数据。 - 使用`get(key)`方法获取字符串类型的数据。 - 使用`hset(key, field, value)`方法设置哈希类型的数据。 - 使用`hget(key, field)`方法获取哈希类型的数据。 - 使用`lpush(key, values)`方法设置列表类型的数据。 - 使用`lpop(key)`方法从列表左侧弹出元素。 - 使用`rpop(key)`方法从列表右侧弹出元素。 - 使用`del(key)`方法删除指定的key。\[3\] #### 引用[.reference_title] - *1* [redis基本操作](https://blog.csdn.net/m0_50782114/article/details/128119748)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Redis基本使用!](https://blog.csdn.net/weixin_50769390/article/details/127134134)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值